:root{--page:#dfdbd3;--frame:#eeeae3;--surface:#fbf9f4;--surface-2:#f7f4ed;--field:#fdfcf8;--line:#e6e2da;--line-2:#eae5dc;--line-3:#f0ece4;--edge:#dcd7cd;--ink:#201e1a;--ink-2:#5f5a52;--ink-2b:#6a655d;--ink-3:#7d7871;--ink-muted:#8f8a81;--btn:#26241f;--btn-ink:#faf8f3;--tab-active:#e8e3d9;--n-bg:#e8e4db;--n-fg:#565149;--n-dot:#b8b3a8;--r-bg:#dfe6df;--r-fg:#47604c;--r-dot:#a4b8a7;--a-bg:#dce4ec;--a-fg:#42586d;--a-dot:#9fb1c3;--l-bg:#eee2cd;--l-fg:#6f5f45;--l-dot:#d3bb96;--w-bg:#f7eae4;--w-fg:#a2573f;--w-dot:#c08770;--w-line:#ecd8cd;--t0:#c9c4b9;--t1:#a9a49a;--t2:#d3bb96;--t3:#c08770;--font:Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;text-wrap:balance}button,input,select,textarea{font-family:inherit;font-variant-numeric:tabular-nums}a{color:inherit}#root,#app{height:100%;container-type:inline-size}.app{display:flex;height:100%;background:var(--frame);overflow:hidden}@container (min-width:1240px){.app{max-width:1240px;margin:0 auto;border-left:1px solid var(--edge);border-right:1px solid var(--edge)}}.side{display:none}@container (min-width:768px){.side{display:flex;flex-direction:column;gap:12px;width:212px;flex:none;overflow-y:auto;background:var(--surface-2);border-right:1px solid var(--line);padding:14px 12px}}.side-logo{display:flex;align-items:flex-end;gap:6px;padding:2px 6px 6px}.side-logo b{font-size:19px;font-weight:700;letter-spacing:-.03em;line-height:1}.side-logo span{font-size:9.5px;font-weight:600;letter-spacing:.14em;color:var(--ink-3);padding-bottom:2px}.me{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:10px;display:flex;flex-direction:column;gap:8px}.me-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.me-name{font-size:14.5px;font-weight:600}.pill{font-size:11.5px;padding:3px 8px;border-radius:99px;background:var(--n-bg);color:var(--n-fg)}.me-role{font-size:12.5px;color:var(--ink-3)}.hr{height:1px;background:var(--line-3);border:0;margin:0}.me-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-2b)}.badge{font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:99px;background:var(--w-bg);color:var(--w-fg)}.me-links{display:flex;gap:12px;font-size:12.5px;color:var(--ink-3)}.me-links button{border:0;background:none;color:inherit;font-size:12.5px;padding:0;cursor:pointer}.grp{font-size:11.5px;font-weight:600;letter-spacing:.06em;color:var(--ink-3);padding:10px 8px 4px}.nav{display:flex;flex-direction:column;gap:2px}.nav button{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;border:0;background:none;font-size:14px;color:var(--ink-2b);cursor:pointer;text-align:left;width:100%}.nav button .dot{width:5px;height:5px;border-radius:50%;background:#cbc5b9;flex:none}.nav button[aria-current=page]{background:var(--tab-active);color:var(--ink);font-weight:600}.nav button[aria-current=page] .dot{background:var(--ink)}.main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;position:relative}.topbar{flex:none;min-height:52px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:10px}@container (min-width:768px){.topbar{min-height:56px;padding:0 24px}}.topbar h2{font-size:16px;font-weight:600}.topbar .sub{font-size:12.5px;color:var(--ink-3);margin-top:1px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--n-bg);color:var(--n-fg);border:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex:none;cursor:pointer}@container (min-width:768px){.avatar{display:none}}.body{padding:14px;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto}.body>*{flex:0 0 auto}@container (min-width:768px){.body{padding:20px 24px 24px;gap:14px}}.tabbar{flex:none;display:flex;background:var(--surface);border-top:1px solid var(--line-2);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}@container (min-width:768px){.tabbar{display:none}}.tabbar button{flex:1;min-height:48px;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;color:var(--ink-3);border-radius:10px;padding:4px 2px}.tabbar .tdot{width:6px;height:6px;border-radius:50%;background:#cbc5b9}.tabbar button[aria-current=page]{color:var(--ink);font-weight:600}.tabbar button[aria-current=page] .tdot{background:var(--ink)}.footbar{flex:none;background:var(--surface);border-top:1px solid var(--line);padding:10px 14px}@container (min-width:768px){.footbar{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}@container (min-width:768px){.card{padding:16px 18px}}.card.warn{background:var(--w-bg);border-color:var(--w-line)}.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.card-t{font-size:15px;font-weight:600}.card-m{font-size:12.5px;color:var(--ink-3)}.big{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.15}@container (min-width:768px){.big{font-size:30px}}.muted{font-size:13px;color:var(--ink-3)}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:8px}.stack{display:flex;flex-direction:column;gap:8px}.grid{display:grid;grid-template-columns:1fr;gap:12px}@container (min-width:600px){.grid{grid-template-columns:1fr 1fr}}@container (min-width:1024px){.grid-3{grid-template-columns:1fr 1fr 1fr}}.grid-2m{grid-template-columns:1fr 1fr}@container (min-width:768px){.grid-2m{grid-template-columns:repeat(4,1fr)}}.span-2{grid-column:1/-1}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;padding:4px 10px;border-radius:99px;white-space:nowrap}.chip .d{width:6px;height:6px;border-radius:50%;flex:none}.s-n{background:var(--n-bg);color:var(--n-fg)}.s-n .d{background:var(--n-dot)}.s-r{background:var(--r-bg);color:var(--r-fg)}.s-r .d{background:var(--r-dot)}.s-a{background:var(--a-bg);color:var(--a-fg)}.s-a .d{background:var(--a-dot)}.s-l{background:var(--l-bg);color:var(--l-fg)}.s-l .d{background:var(--l-dot)}.s-w{background:var(--w-bg);color:var(--w-fg)}.s-w .d{background:var(--w-dot)}.btn{border:0;background:var(--btn);color:var(--btn-ink);font-size:15px;font-weight:600;border-radius:10px;min-height:52px;padding:0 18px;cursor:pointer;width:100%}@container (min-width:768px){.btn{min-height:42px;font-size:14.5px;width:auto;min-width:200px}}.btn.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.btn[disabled]{opacity:.55;cursor:default}.btn-sm{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2b);font-size:13.5px;border-radius:9px;min-height:44px;padding:0 12px;cursor:pointer}@container (min-width:768px){.btn-sm{min-height:34px}}.btn-sm.on{background:var(--btn);color:var(--btn-ink);border-color:var(--btn);font-weight:600}.btn-sm.danger{color:var(--w-fg);border-color:var(--w-line);background:var(--w-bg)}:focus-visible{outline:2px solid var(--btn);outline-offset:2px}.bar{height:24px;border-radius:6px;background:#f2efe8;position:relative;overflow:hidden}.bar i{position:absolute;top:0;bottom:0;display:block}.bar .g44{width:1px;background:#c3b9a4}.bar .g52{width:2px;background:#a2573f}.seg-list{display:flex;flex-direction:column;gap:6px}.seg-item{display:grid;grid-template-columns:112px 1fr;gap:10px;align-items:center;font-size:14px}.seg-item>.chip,.seg-item>.muted{justify-self:start}.seg-time{color:var(--ink-2b);font-size:13.5px}.seg-track{display:none}@container (min-width:768px){.seg-track{display:block;height:22px;border-radius:6px;background:#f2efe8;position:relative;overflow:hidden;margin-top:10px}.seg-track i{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding-left:8px;font-size:12px;white-space:nowrap;overflow:hidden}}.legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}@container (min-width:768px){.legend,.calunit{display:none}}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal .dow{font-size:11.5px;color:var(--ink-3);text-align:center;padding:4px 0}.cal .cell{border:1px solid var(--line-3);background:var(--field);border-radius:8px;cursor:pointer;min-height:54px;padding:5px 4px;display:flex;flex-direction:column;align-items:flex-start;gap:3px}@container (min-width:768px){.cal{gap:5px}.cal .cell{min-height:76px;padding:7px 8px}}.cal .cd{font-size:12.5px;color:var(--ink-2b);line-height:1}.cal .ch{font-size:12px;color:var(--ink-3);line-height:1;white-space:nowrap}.cal .ch .long{display:none}@container (min-width:768px){.cal .cd{font-size:13px}.cal .ch{font-size:12.5px}.cal .ch .short{display:none}.cal .ch .long{display:inline}.cal .cdot{display:none}.cal .cname{display:inline-flex}}.cal .cdot{width:6px;height:6px;border-radius:50%}.cal .cname{display:none;font-size:11.5px;padding:2px 7px;border-radius:99px}.cal .cell[aria-pressed=true]{border-color:var(--btn);box-shadow:inset 0 0 0 1px var(--btn)}.cal .off{background:var(--frame);border-color:transparent;cursor:default}.cal .hol .cd{color:var(--w-fg)}.detail{position:absolute;left:0;right:0;bottom:0;z-index:20;display:none}.detail.open{display:block}.sheet{background:var(--surface);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 32px -20px #201e1a99;max-height:70vh;overflow-y:auto}.handle{width:38px;height:4px;border-radius:99px;background:var(--line);margin:0 auto 12px}@container (min-width:768px){.detail{position:static;bottom:auto;display:block}.sheet{border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:none;max-height:none}.handle{display:none}}.tbl-scroll{overflow-x:auto;margin:0 -14px;padding:0 14px}@container (min-width:768px){.tbl-scroll{margin:0;padding:0}}.tbl{display:grid;gap:3px;min-width:520px}.tbl .th{font-size:11.5px;color:var(--ink-3);padding:5px 6px;white-space:nowrap}.tbl .name{font-size:13.5px;padding:8px;background:var(--surface);position:sticky;left:0;z-index:1;border-right:1px solid var(--line-3);white-space:nowrap}.tbl .c{font-size:12.5px;padding:7px 6px;border-radius:7px;background:#f4f1ea;color:var(--ink-3);text-align:center;white-space:nowrap}.tbl .num{text-align:right;font-size:13px;padding:8px 6px;color:var(--ink-2)}.hscroll{display:flex;gap:8px;overflow-x:auto;margin:0 -14px;padding:0 14px 2px;scrollbar-width:none}.hscroll::-webkit-scrollbar{display:none}@container (min-width:768px){.hscroll{margin:0;padding:0;overflow:visible;flex-wrap:wrap}}.hscroll>*{flex:none}.field{width:100%;min-height:46px;border:1px solid var(--line);background:var(--field);border-radius:9px;padding:0 12px;font-size:15px;color:var(--ink)}@container (min-width:768px){.field{min-height:42px}}textarea.field{min-height:84px;padding:10px 12px;resize:vertical}.lbl{font-size:12.5px;color:var(--ink-3);display:block;margin-bottom:5px}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}@container (min-width:600px){.form-grid{grid-template-columns:1fr 1fr}}.submit-inline{display:none}@container (min-width:768px){.submit-inline{display:block;margin-top:14px}}.login{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:40px 20px;background:var(--page);overflow-y:auto}.login-card{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:34px 30px 26px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;flex-direction:column;align-items:center;gap:14px}.brand-mark{display:flex;align-items:flex-end;gap:9px}.brand-mark b{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1}.brand-mark span{font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--ink-3);padding-bottom:4px}.brand-rule{width:44px;height:1px;background:var(--line);border:0;margin:0}.brand-words{display:flex;flex-direction:column;align-items:center;gap:5px}.brand-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.14em;color:var(--ink-3)}.brand-tag{font-size:13px;color:var(--ink-3)}.login-block{display:flex;flex-direction:column;gap:10px}.login-btn{height:42px;min-height:42px;border:0;border-radius:9px;background:var(--btn);color:var(--btn-ink);font-size:15px;font-weight:600;cursor:pointer;width:100%}.login-btn.ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.login-note{font-size:12.5px;color:var(--ink-3);text-align:center;line-height:1.5}.login-alt{border-top:1px solid var(--line-2);padding-top:14px;display:flex;flex-direction:column;align-items:center;gap:10px}.login-alt>button{border:0;background:none;color:var(--ink-3);font-size:12.5px;cursor:pointer}[hidden]{display:none!important}.login-err{background:var(--w-bg);border:1px solid var(--w-line);color:var(--w-fg);border-radius:9px;padding:10px 12px;font-size:12.5px;line-height:1.5}.empty{padding:26px 12px;text-align:center;color:var(--ink-3);font-size:14px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-3)}.list-row:last-child{border-bottom:0}.appr-item{border:1px solid var(--line);border-radius:11px;padding:12px;background:var(--field);display:flex;flex-direction:column;gap:8px}.appr-actions{display:flex;gap:8px}.appr-actions .btn-sm{flex:1}@container (min-width:768px){.appr-actions{justify-content:flex-end}.appr-actions .btn-sm{flex:none;min-width:88px}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:88px;z-index:50;background:var(--btn);color:var(--btn-ink);border-radius:10px;padding:11px 16px;font-size:14px;box-shadow:0 8px 24px -12px #201e1ab3;max-width:88vw}.toast.err{background:var(--w-fg)}@container (min-width:768px){.toast{bottom:28px}}.spin{padding:40px;text-align:center;color:var(--ink-3);font-size:14px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
