:root{--bg: #14100c;--bg-elev: #1e1813;--bg-elev-2: #261e18;--ink: #efe7da;--ink-muted: #a89a86;--ink-faint: #6f6457;--accent: #e0a458;--brass: #c8a24b;--line: rgba(200, 162, 75, .16);--success: #7fbf94;--warning: #e0a458;--danger: #d98a6a;--info: #8fb3c9;--shadow-soft: 0 18px 60px rgba(0, 0, 0, .36);--shadow-amber: 0 0 0 1px rgba(200, 162, 75, .16), 0 18px 48px rgba(224, 164, 88, .1);--radius: 8px}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 18% 0%,rgba(224,164,88,.14),transparent 32rem),radial-gradient(circle at 86% 14%,rgba(143,179,201,.08),transparent 28rem),linear-gradient(135deg,rgba(200,162,75,.05),transparent 28%),var(--bg);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.5;overflow-x:hidden}body:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background:repeating-linear-gradient(92deg,rgba(239,231,218,.026) 0,rgba(239,231,218,.026) 1px,transparent 1px,transparent 38px),linear-gradient(180deg,#ffffff05,#0000002e);-webkit-mask-image:linear-gradient(180deg,#000000c7,#00000038);mask-image:linear-gradient(180deg,#000000c7,#00000038)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.46}a{color:inherit;text-decoration:none}::selection{background:#e0a45859;color:var(--ink)}:focus-visible{outline:2px solid rgba(224,164,88,.86);outline-offset:3px}.icon{width:1.05em;height:1.05em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.app{min-height:100vh}.top-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:72px;border-bottom:1px solid var(--line);background:#14100ce0;padding:12px 24px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 1px #ffffff08,0 16px 50px #0000003d}.brand{display:inline-flex;align-items:center;min-width:0;gap:12px}.brand-mark{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(224,164,88,.55);border-radius:var(--radius);background:linear-gradient(145deg,#e0a45842,#c8a24b0a),var(--bg-elev-2);color:var(--accent);box-shadow:inset 0 0 18px #e0a4581f,0 0 30px #e0a45824}.brand strong,.brand small{display:block}.brand strong{color:var(--ink);font-family:Fraunces,Pretendard,serif;font-size:21px;font-weight:700;letter-spacing:0}.brand small{color:var(--ink-muted);font-size:12px;font-weight:700}.top-actions,.action-row,.toolbar,.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.demo-badge,.role-pill,.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:800;white-space:nowrap}.demo-badge{border-color:#c8a24b52;background:#c8a24b1a;color:var(--brass)}.role-pill{gap:8px;background:#efe7da0a;color:var(--ink-muted)}.role-dot,.status-dot{width:7px;height:7px;border-radius:999px;background:currentColor;box-shadow:0 0 12px currentColor}.toast{position:fixed;right:20px;top:88px;z-index:40;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 40px));border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow-soft);font-size:14px;font-weight:800;animation:rise-in .18s ease-out both}.toast button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:999px;background:#ffffff14;color:inherit;font-weight:900}.toast-ok{background:color-mix(in srgb,var(--success) 20%,var(--bg-elev));color:var(--success)}.toast-error{background:color-mix(in srgb,var(--danger) 18%,var(--bg-elev));color:var(--danger)}.login-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:32px}.login-panel{position:relative;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);gap:34px;width:min(1160px,100%);border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,rgba(224,164,88,.1),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.035),transparent),var(--bg-elev);padding:38px;box-shadow:var(--shadow-amber);overflow:hidden;animation:rise-in .22s ease-out both}.login-panel:after{position:absolute;inset:auto -20% -45% 30%;height:260px;pointer-events:none;content:"";background:radial-gradient(ellipse,rgba(224,164,88,.16),transparent 68%)}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.role-card,.section,.metric-card,.form-panel,.detail-drawer,.success-panel,.rate-group,.settlement-card,.empty-state{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.035),transparent),var(--bg-elev);box-shadow:inset 0 1px #ffffff09}.role-card{display:flex;flex-direction:column;gap:16px;min-height:286px;padding:24px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.role-card:hover,.metric-card:hover,.settlement-card:hover{transform:translateY(-2px);border-color:#e0a45857;box-shadow:var(--shadow-amber)}.card-icon,.metric-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(224,164,88,.32);border-radius:var(--radius);background:#e0a45814;color:var(--accent)}.compact-icon{width:32px;height:32px}.role-card h2,.section h2,.section h3,.modal h2{margin:0}.role-card h2,.section h2,.modal h2{color:var(--ink);font-family:Fraunces,Pretendard,serif;font-weight:700;letter-spacing:0}.role-card p{margin:0;color:var(--ink-muted);font-size:14px}.workspace{display:grid;grid-template-columns:246px minmax(0,1fr);align-items:start;min-height:calc(100vh - 72px)}.side-nav{position:sticky;top:72px;display:grid;align-content:start;gap:7px;height:calc(100vh - 72px);border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(224,164,88,.06),transparent 36%),#14100cc2;padding:22px 14px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.side-nav a{position:relative;display:flex;align-items:center;min-height:44px;gap:10px;border:1px solid transparent;border-radius:var(--radius);color:var(--ink-muted);font-size:14px;font-weight:800;padding:11px 13px;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.side-nav a:before{position:absolute;inset:10px auto 10px 0;width:3px;border-radius:999px;content:"";background:transparent}.side-nav a:hover{border-color:#c8a24b2e;background:#e0a4580f;color:var(--ink)}.side-nav a.active{border-color:#e0a45847;background:#e0a4581c;color:var(--accent);box-shadow:inset 0 0 22px #e0a45814}.side-nav a.active:before{background:var(--accent);box-shadow:0 0 18px #e0a458cc}.page{display:grid;gap:20px;width:min(1280px,100%);padding:32px;animation:rise-in .22s ease-out both}.narrow-page{width:min(980px,100%)}.page-header{display:grid;gap:8px}.eyebrow{margin:0;color:var(--brass);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}h1{margin:0;color:var(--ink);font-family:Fraunces,Pretendard,serif;font-size:clamp(30px,3.2vw,46px);font-weight:700;line-height:1.08;letter-spacing:0}.page-header .muted{max-width:820px}.header-line{width:min(220px,38vw);height:1px;margin-top:6px;background:linear-gradient(90deg,rgba(224,164,88,.8),transparent)}.muted,.api-base{margin:0;color:var(--ink-muted);font-size:14px;line-height:1.65}.api-base{width:fit-content;max-width:100%;border:1px solid var(--line);border-radius:999px;background:#efe7da0a;padding:7px 11px;color:var(--ink-faint);overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;min-height:132px;padding:18px;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.metric-card:after{position:absolute;inset:auto -30px -55px auto;width:120px;height:120px;border-radius:999px;content:"";background:#e0a45814;filter:blur(8px)}.metric-icon{grid-row:span 2}.metric-label{align-self:end;color:var(--ink-muted);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.metric-card strong{color:var(--ink);font-family:Fraunces,Pretendard,serif;font-size:clamp(25px,2.4vw,34px);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.08}.section,.form-panel,.detail-drawer{display:grid;gap:16px;padding:20px}.compact{padding:18px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section h3{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:16px}.breakdown-panel{border-color:#e0a45857;box-shadow:var(--shadow-amber)}.detail-grid table{min-width:0}.detail-grid th,.detail-grid td{padding:12px}.breakdown-panel table{table-layout:fixed}.breakdown-panel th:first-child,.breakdown-panel td:first-child{width:42%}.breakdown-panel th:not(:first-child),.breakdown-panel td:not(:first-child){width:19.33%}.table-wrap{width:100%;overflow-x:auto;border:1px solid rgba(200,162,75,.1);border-radius:var(--radius);background:#14100c47}table{width:100%;min-width:720px;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid rgba(200,162,75,.12);padding:13px 14px;text-align:left;vertical-align:middle}th{background:#261e18d6;color:var(--ink-faint);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}td{color:var(--ink)}td small{display:block;color:var(--ink-faint);margin-top:4px}tbody tr{position:relative;transition:background .16s ease}tbody tr:hover{background:#e0a4580b}tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}tfoot th{border-top:1px solid rgba(224,164,88,.46);border-bottom:0;background:#e0a4581a;color:var(--accent)}.num{text-align:right;font-variant-numeric:tabular-nums}.id-text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.03em}.selected-row{background:#e0a45817}.primary-button,.secondary-button,.ghost-button,.small-button,.text-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;gap:8px;border-radius:var(--radius);border:1px solid transparent;font-size:14px;font-weight:900;padding:9px 14px;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.primary-button{border-color:#e0a458b3;background:linear-gradient(180deg,#f1bd72,var(--accent));color:#26180d;box-shadow:0 10px 28px #e0a4582e,inset 0 1px #ffffff4d}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.small-button:hover,.text-link:hover{transform:translateY(-1px)}.primary-button:hover{box-shadow:0 14px 34px #e0a45847,inset 0 1px #ffffff5c}.secondary-button,.small-button{border-color:#c8a24b57;background:#efe7da09;color:var(--brass)}.secondary-button:hover,.small-button:hover{background:#e0a45814;color:var(--accent)}.ghost-button,.text-link{background:transparent;color:var(--accent)}.ghost-button:hover,.text-link:hover{background:#e0a45812}.small-button{min-height:34px;font-size:12px;padding:7px 10px}label{display:grid;gap:8px;color:var(--ink-muted);font-size:13px;font-weight:900}input,select,textarea{width:100%;min-height:42px;border:1px solid rgba(200,162,75,.22);border-radius:var(--radius);background:#14100cb8;color:var(--ink);padding:10px 12px;font-variant-numeric:tabular-nums;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}select{color-scheme:dark}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input:focus,select:focus,textarea:focus{border-color:#e0a458b8;background:#14100ceb;box-shadow:0 0 0 3px #e0a4581f;outline:none}input[type=file]{padding:9px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.hint-box,.warning-section,.success-panel{display:grid;gap:5px;border:1px solid rgba(224,164,88,.28);border-radius:var(--radius);background:#e0a45817;color:var(--ink-muted);padding:15px}.hint-box strong,.success-panel strong{color:var(--ink)}.warning-section{color:var(--warning)}.success-panel{border-color:#7fbf9457;background:#7fbf941a;color:var(--success)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.photo-grid img{width:100%;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:var(--radius);object-fit:cover}.settlement-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:12px}.settlement-card{display:grid;justify-items:start;gap:10px;min-height:162px;padding:16px;color:inherit;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.settlement-card strong{color:var(--ink);font-family:Fraunces,Pretendard,serif;font-size:26px;font-variant-numeric:tabular-nums;font-weight:700}.status-badge{gap:7px;min-height:28px;border-color:color-mix(in srgb,currentColor 32%,transparent);background:color-mix(in srgb,currentColor 13%,transparent);color:var(--ink-muted)}.status-submitted{color:var(--info)}.status-review{color:var(--warning)}.status-revision{color:var(--danger)}.status-approved{color:var(--success)}.status-scheduled{color:#b9a9d8}.status-paid{color:var(--brass)}.detail-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px}.totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid rgba(224,164,88,.28);padding-top:13px;font-size:14px}.totals span,.totals strong{border:1px solid rgba(200,162,75,.12);border-radius:var(--radius);background:#14100c59;padding:10px;font-variant-numeric:tabular-nums}.totals strong{color:var(--accent)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#070503ad;padding:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{display:grid;gap:16px;width:min(460px,100%);border:1px solid rgba(224,164,88,.28);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--bg-elev);padding:22px;box-shadow:var(--shadow-soft);animation:rise-in .18s ease-out both}.rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rate-group{min-width:0;margin:0;padding:16px}.rate-group legend{color:var(--accent);font-family:Fraunces,Pretendard,serif;font-weight:700;padding:0 7px}.timeline{display:grid;gap:10px}.timeline-item{position:relative;display:grid;gap:4px;border:1px solid rgba(200,162,75,.14);border-left-color:#e0a458a8;border-radius:var(--radius);background:#1e1813b8;padding:13px 14px 13px 48px}.timeline-mark{position:absolute;left:13px;top:14px;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e0a4581a;color:var(--accent)}.timeline-item time{color:var(--ink-faint);font-size:12px;font-weight:900;letter-spacing:.06em}.timeline-item span{color:var(--ink-muted);font-size:13px}.empty-state{display:grid;place-items:center;min-height:220px;color:var(--ink-muted);font-weight:900}.diff-plus{color:var(--success);font-weight:900}.diff-minus{color:var(--danger);font-weight:900}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.login-panel,.workspace,.detail-grid,.rate-grid{grid-template-columns:1fr}.side-nav{position:sticky;top:72px;z-index:15;display:flex;height:auto;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 14px}.side-nav a{flex:0 0 auto}.page{padding:24px}.metric-grid,.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.top-bar{align-items:flex-start;flex-direction:column;padding:12px 16px}.top-actions{width:100%}.login-page,.page{padding:16px}.login-panel{padding:22px}.role-grid,.metric-grid,.form-grid.two,.form-grid.three,.totals{grid-template-columns:1fr}.section,.form-panel,.detail-drawer{padding:16px}.section-head{display:grid}.primary-button,.secondary-button,.ghost-button,.small-button,.text-link,input,select{min-height:44px}table{min-width:640px}}@media(max-width:420px){.brand strong{font-size:18px}.brand-mark{width:38px;height:38px}.top-actions>*{flex:1 1 auto}.side-nav{top:116px}.toast{right:12px;top:126px;max-width:calc(100vw - 24px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
