:root{--bg:#faf8f6;--surface:#ffffff;--surface-2:#f3efeb;--text:#1d1a1a;--muted:#6b6362;--line:#e4ddd8;--brand:#8b1a3a;--brand-ink:#ffffff;--brand-soft:#f6e7ec;--ok:#1f7a4d;--ok-soft:#e3f3ea;--warn:#9a5b00;--warn-soft:#fbf0dc;--danger:#b42318;--radius:10px;--shadow:0 1px 2px rgba(29,26,26,0.06),0 4px 16px rgba(29,26,26,0.05);color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#141213;--surface:#1d1a1b;--surface-2:#262223;--text:#f1ecea;--muted:#a99f9c;--line:#342e2f;--brand:#d0567a;--brand-ink:#1a0b10;--brand-soft:#3a1c26;--ok:#5cc28f;--ok-soft:#173326;--warn:#e0a54a;--warn-soft:#3a2a12;--danger:#f07167;--shadow:none;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.3;letter-spacing:-.01em}.container{max-width:1120px;margin:0 auto;padding:0 20px}.muted{color:var(--muted)}.small{font-size:13px}.row,.spread{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h3{margin:0 0 6px;font-size:16px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 14px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none!important}.btn-primary,.btn:hover{border-color:var(--brand)}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-primary:hover{filter:brightness(1.08)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-brand{background:var(--brand-soft);color:var(--brand)}.notice{border-left:3px solid var(--warn);background:var(--warn-soft);padding:10px 14px;border-radius:6px}.error{color:var(--danger)}label{display:block;font-weight:600;font-size:13px;margin:14px 0 6px}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px}textarea{min-height:84px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:transparent}.hint{font-weight:400;color:var(--muted);font-size:12px;margin-left:6px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:600;background:var(--surface-2)}.nowrap{white-space:nowrap}.tracker-table{min-width:860px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.site-header,.table-wrap{background:var(--surface)}.site-header{border-bottom:1px solid var(--line)}.site-header .container{display:flex;justify-content:space-between;align-items:center;height:64px}.logo{font-weight:900;font-size:22px;letter-spacing:.02em;color:var(--brand);font-style:italic}.hero{padding:72px 0 48px}.hero h1{font-size:clamp(30px,5vw,46px);margin:0 0 18px;white-space:pre-line}.hero p{font-size:17px;max-width:640px;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--brand);font-weight:700}.section{padding:40px 0}.footer{border-top:1px solid var(--line);padding:28px 0;margin-top:40px}.portal{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);background:var(--surface);padding:20px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar nav a{display:block;padding:9px 12px;border-radius:8px;color:var(--text);font-weight:500}.sidebar nav a:hover{background:var(--surface-2);text-decoration:none}.main{padding:28px 32px 60px;min-width:0}.main h1{margin:0 0 4px;font-size:24px}.stages{display:flex;gap:4px;flex-wrap:wrap}.stage{white-space:nowrap;font-size:11px;padding:2px 7px;border-radius:4px;background:var(--surface-2);color:var(--muted)}.stage.done{background:var(--ok-soft);color:var(--ok)}.stage.now{background:var(--brand-soft);color:var(--brand);font-weight:700}.md{max-width:860px}.md h1{font-size:26px}.md h2{font-size:20px;margin-top:36px;padding-top:12px;border-top:1px solid var(--line)}.md h3{font-size:16px;margin-top:24px}.md table{margin:12px 0;font-size:14px;display:block;overflow-x:auto}.md td,.md th{border:1px solid var(--line)}.md code{padding:1px 5px;border-radius:4px;font-size:.92em}.md code,.md pre{background:var(--surface-2)}.md pre{padding:14px;border-radius:8px;overflow-x:auto}.md pre code{background:none;padding:0}.md blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--brand);background:var(--brand-soft);border-radius:0 6px 6px 0}@media (max-width:760px){.portal{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px}.sidebar nav{display:flex;gap:2px;overflow-x:auto}.sidebar nav a{white-space:nowrap;padding:7px 10px}.sidebar .side-foot{display:none}.main{padding:20px 16px 48px}.container{padding:0 16px}.hero{padding:44px 0 28px}}.portal[data-area=admin]{--brand:#1f4e8c;--brand-ink:#ffffff;--brand-soft:#e4ecf7;--bg:#f4f6fa;--surface-2:#e9eef5;--line:#d5dde8}@media (prefers-color-scheme:dark){.portal[data-area=admin]{--brand:#6ea4e8;--brand-ink:#0b1a2e;--brand-soft:#1b2a40;--bg:#0f141c;--surface:#161c26;--surface-2:#1e2633;--line:#2a3442}}.portal[data-area=admin]{background:var(--bg)}.portal[data-area=admin] .sidebar{background:var(--brand);border-right-color:var(--brand)}.portal[data-area=admin] .side-foot,.portal[data-area=admin] .side-foot div,.portal[data-area=admin] .sidebar .logo,.portal[data-area=admin] .sidebar nav a{color:var(--brand-ink)!important}.portal[data-area=admin] .sidebar nav a:hover{background:rgba(255,255,255,.14)}.portal[data-area=admin] .side-foot .btn{background:rgba(255,255,255,.14);color:var(--brand-ink);border-color:transparent}.admin-banner{background:var(--brand);color:var(--brand-ink);font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;margin-bottom:18px}.sidebar nav a.nav-switch{margin-top:14px;border-top:1px solid rgba(255,255,255,.25);border-radius:0;padding-top:14px;font-size:13px;opacity:.9}.sidebar nav a.nav-switch-admin{border-top-color:var(--line);color:#1f4e8c;font-weight:700}@media (prefers-color-scheme:dark){.sidebar nav a.nav-switch-admin{color:#6ea4e8}}.watermark{position:fixed;inset:-20vh -20vw;pointer-events:none;z-index:40;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;flex-wrap:wrap;gap:56px 72px;align-content:flex-start;padding:40px;transform:rotate(-22deg);opacity:.03;color:var(--text);font-size:13px;font-weight:600;white-space:nowrap}@media print{.watermark{opacity:.12}}.staff-table{min-width:1560px}.staff-row{display:grid;grid-template-columns:1fr 1fr 1.6fr 128px 130px 1.4fr .9fr .8fr repeat(6,.75fr) 64px 64px;align-items:center;grid-gap:8px;gap:8px;padding:8px 12px;border-top:1px solid var(--line)}.staff-head{border-top:0;background:var(--surface-2);font-size:12px;color:var(--muted);font-weight:600;padding:10px 12px}@media (max-width:760px){.staff-table{min-width:1240px}.staff-row{grid-template-columns:1fr 1fr 1.6fr .9fr .8fr repeat(6,.75fr) 64px 64px}.staff-row .staff-extra{display:none}}.checkup-row{display:grid;grid-template-columns:1.1fr 2fr 1.9fr 1.1fr 1.1fr 1.2fr 1.1fr 1.2fr 1fr .7fr 56px;align-items:start;grid-gap:8px;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.checkup-head{border-top:0;background:var(--surface-2);font-size:12px;color:var(--muted);font-weight:600}.checkup-row input,.checkup-row select{padding:6px 8px;font-size:13px}.portal[data-area=partner]{--brand:#0e7c7b;--brand-ink:#ffffff;--brand-soft:#dff3f2;--bg:#f3f8f8;--surface-2:#e7f0f0;--line:#d2e2e1}@media (prefers-color-scheme:dark){.portal[data-area=partner]{--brand:#4fc3c0;--brand-ink:#062322;--brand-soft:#143534;--bg:#0e1515;--surface:#141c1c;--surface-2:#1b2626;--line:#273535}}.portal[data-area=partner]{background:var(--bg)}.portal[data-area=partner] .sidebar{background:var(--brand);border-right-color:var(--brand)}.portal[data-area=partner] .side-foot,.portal[data-area=partner] .side-foot div,.portal[data-area=partner] .sidebar .logo,.portal[data-area=partner] .sidebar nav a{color:var(--brand-ink)!important}.portal[data-area=partner] .sidebar nav a:hover{background:rgba(255,255,255,.14)}.portal[data-area=partner] .side-foot .btn{background:rgba(255,255,255,.14);color:var(--brand-ink);border-color:transparent}.partner-banner{background:var(--brand);color:var(--brand-ink);font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;margin-bottom:18px}.partner-row{display:grid;grid-template-columns:1fr 1.2fr 1.6fr 2fr 1.8fr 1.2fr 1.1fr 1.2fr 1.1fr 1.3fr 56px;align-items:start;grid-gap:8px;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.partner-head{border-top:0;background:var(--surface-2);font-size:12px;color:var(--muted);font-weight:600}.partner-row input,.partner-row select{padding:6px 8px;font-size:13px}.thread{border-top:1px dashed var(--line);padding:8px 12px 12px}.thread summary{cursor:pointer;font-size:13px;color:var(--muted);font-weight:600;list-style:none}.thread summary::-webkit-details-marker{display:none}.thread summary:before{content:"▸ "}.thread[open] summary:before{content:"▾ "}.msg{display:grid;grid-template-columns:110px minmax(0,1fr);grid-gap:10px;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.msg:last-of-type{border-bottom:0}.msg .who{color:var(--muted)}.msg .who b{color:var(--text);display:block}.msg .body{white-space:pre-wrap;word-break:break-word}.msg-role{display:inline-block;font-size:11px;padding:0 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);margin-left:4px}.msg-role-admin{background:#e4ecf7;color:#1f4e8c}.msg-role-partner{background:#dff3f2;color:#0e7c7b}.msg-role-staff{background:#f6e7ec;color:#8b1a3a}.msg-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:start;margin-top:8px}.msg-form textarea{min-height:44px;font-size:13px}.portal[data-area=aky]{--brand:#5a3d8f;--brand-ink:#ffffff;--brand-soft:#ece6f6;--bg:#f7f5fa;--surface-2:#eeeaf4;--line:#ddd6e8}@media (prefers-color-scheme:dark){.portal[data-area=aky]{--brand:#a98ae6;--brand-ink:#160d26;--brand-soft:#2a1f40;--bg:#121018;--surface:#1a1722;--surface-2:#231f2d;--line:#302a3c}}.portal[data-area=aky]{background:var(--bg)}.portal[data-area=aky] .sidebar{background:var(--brand);border-right-color:var(--brand)}.portal[data-area=aky] .side-foot,.portal[data-area=aky] .side-foot div,.portal[data-area=aky] .sidebar .logo,.portal[data-area=aky] .sidebar nav a{color:var(--brand-ink)!important}.portal[data-area=aky] .sidebar nav a:hover{background:rgba(255,255,255,.14)}.portal[data-area=aky] .side-foot .btn{background:rgba(255,255,255,.14);color:var(--brand-ink);border-color:transparent}.aky-cols{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.aky-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.aky-col-h{font-size:15px;margin:0 0 8px}.aky-col-h,.aky-row{display:flex;gap:8px;align-items:center}.aky-row{padding:8px 6px;border-top:1px solid var(--line)}.aky-row:first-of-type{border-top:0}.aky-row.aky-late{background:color-mix(in srgb,var(--danger) 8%,transparent);border-radius:6px}.aky-row.aky-dim .aky-title{color:var(--muted);text-decoration:line-through}.aky-title{flex:1 1;min-width:0;color:var(--text);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.aky-title:hover{text-decoration:none;color:var(--brand)}.aky-p1{color:var(--danger);font-weight:900}.aky-due{font-size:12px;color:var(--muted);white-space:nowrap}.aky-due-today{color:var(--warn);font-weight:600}.aky-due-late{color:var(--danger);font-weight:700}.aky-overdue-badge{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.aky-tags{display:inline-flex;gap:4px}.aky-acts{display:flex;gap:4px;flex-shrink:0}.aky-mini{padding:3px 8px;font-size:12px}.aky-note{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}