:root{--pink-primary: #e91e8c;--pink-dark: #c4177a;--pink-press: #a51466;--pink-light: #f472b6;--red-accent: #e53935;--ink: #1a1a2e;--ink-2: #34344e;--muted: #5b626e;--faint: #69707d;--paper: #ffffff;--soft: #f9fafb;--soft-2: #f3f4f6;--pink-soft: #fdf2f8;--line: #e5e7eb;--line-strong: #d1d5db;--control-border: #848b97;--on-dark: #ffffff;--on-dark-muted: #c7c8d6;--ok: #15803d;--warn: #b45309;--bad: #b91c1c;--radius: 10px;--sidebar-w: 232px;--topbar-h: 72px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--soft);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit}[hidden]{display:none!important}h1,h2,h3,h4{font-weight:700;letter-spacing:-.4px;margin:0}p{margin:0 0 10px}:focus-visible{outline:3px solid var(--pink-primary);outline-offset:2px;border-radius:4px}.skiplink{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--on-dark);padding:10px 16px;z-index:100;border-radius:0 0 8px}.skiplink:focus{left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:.01ms!important}}.muted{color:var(--muted)}.small{font-size:13px}.nowrap{white-space:nowrap}.link{color:var(--pink-dark);text-decoration:underline;text-underline-offset:2px}.link:hover{color:var(--pink-press)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--paper);border-right:1px solid var(--line);padding:0 14px 18px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;padding:4px 8px 14px}.sidebar .brand-row{flex:none;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 -14px 10px;padding:0 22px;border-bottom:1px solid var(--line)}.sidebar .brand-row .brand{padding:0;min-width:0}.brand .name{font-family:Sarabun,Inter,sans-serif;font-weight:700;font-size:17px;line-height:1.15}.brand .name small{display:block;font-family:Inter,sans-serif;font-weight:500;font-size:12px;color:var(--muted);letter-spacing:.3px}.nav-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);margin:14px 8px 4px;font-weight:600}.nav-section+.nav-section h4{margin-top:30px}.nav-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink-2);font-size:13.5px}.nav-item:hover{background:var(--soft)}.nav-item.active{background:var(--pink-soft);color:var(--pink-dark);font-weight:600}.nav-item .nav-count{margin-left:auto;font-size:12px;font-weight:700;line-height:20px;min-width:20px;height:20px;padding:0 6px;text-align:center;border-radius:999px;background:var(--pink-dark);color:var(--on-dark)}.main-col{min-width:0;display:flex;flex-direction:column}.topbar{flex:none;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;background:var(--paper);border-bottom:1px solid var(--line)}.topbar-start{display:flex;align-items:center;gap:12px;min-width:0}.topbar .title-wrap{min-width:0}.topbar .title-wrap h1{font-size:17px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .title-wrap p{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-end{display:flex;align-items:center;gap:10px;flex:none}.mobile-nav-toggle{display:none;flex:none;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:15px;cursor:pointer}.mobile-nav-toggle:hover{background:var(--soft)}.mobile-nav-close{flex:none;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:13px;cursor:pointer}.mobile-nav-close:hover{background:var(--soft);color:var(--ink)}.nav-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;border:0;padding:0;cursor:default;background:#1a1a2e59}.content{padding:24px 28px 48px;display:flex;flex-direction:column;gap:18px;max-width:1240px;width:100%}.userchip{position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px;background:var(--paper);cursor:pointer;font-size:13px}.userchip .av{width:30px;height:30px;border-radius:50%;background:var(--pink-soft);color:var(--pink-dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:none}.userchip .who{min-width:0}.userchip .who b{display:block;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userchip .who span{color:var(--muted);font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chipmenu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #1a1a2e1f;padding:6px;z-index:40}.chipmenu a,.chipmenu button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:8px;text-decoration:none;font:inherit;font-size:13px;color:inherit;background:none;border:0;cursor:pointer}.chipmenu a:hover,.chipmenu button:hover{background:var(--soft)}.cm-h{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);padding:8px 10px 2px;font-weight:600}.cm-sep{border-top:1px solid var(--line);margin:6px 4px}.cm-pick{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;font:inherit;font-size:13px;color:inherit;text-align:left;cursor:pointer}.cm-pick:hover{background:var(--soft)}.cm-pick.current{font-weight:600}.cm-pick .cm-mark{margin-left:auto;color:var(--pink-dark)}.cm-who{padding:6px 10px 8px;font-size:13px}.cm-who b{display:block}.cm-who span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.card>h3{font-size:15px;margin-bottom:10px}.card>h3+p,.card>.row-between+p,.card>h3+.muted,.card>.row-between+.muted{margin-top:0;margin-bottom:14px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.row-between h3{font-size:15px}.section-h{font-size:15px;margin-bottom:0}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-size:22px;font-weight:700;letter-spacing:-.5px}.stat .sub{color:var(--faint);font-size:12px}a.stat{display:block;color:inherit;text-decoration:none;transition:border-color .12s ease,background .12s ease}a.stat:hover,a.stat:focus-visible{border-color:var(--control-border);background:var(--soft)}.stat.urgent .value{color:var(--bad)}.cardcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:18px}.narrow{max-width:640px;display:flex;flex-direction:column;gap:18px}.tablewrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--paper)}table.data th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line-strong);white-space:nowrap}table.data th button.th-sort{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;margin:0;display:inline-flex;align-items:center;gap:5px;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}table.data th button.th-sort:hover{color:var(--ink)}table.data th .sort-ind{font-size:9px;color:var(--faint)}table.data th .sort-ind.active{color:var(--pink-dark)}table.data td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}table.data tr[data-href]{cursor:pointer}table.data tr[data-href]:hover td{background:var(--soft)}table.data td.actions{text-align:right;white-space:nowrap}table.data td.num,table.data td.rate-cell{white-space:nowrap}table.data td.rate-cell .unit{display:block;font-size:12px;color:var(--muted)}table.data .cell-empty{text-align:center;color:var(--muted);padding:32px 12px}.card table.data{margin:0 -20px -18px;width:calc(100% + 40px)}.card .tablewrap{margin:0 -20px -18px}.card .tablewrap table.data{margin:0;width:100%}.card .tablewrap table.data th:first-child,.card .tablewrap table.data td:first-child{padding-left:20px}.card .tablewrap table.data th:last-child,.card .tablewrap table.data td:last-child{padding-right:20px}.card .tablewrap table.data tr:last-child td{border-bottom:0}.entity{display:flex;align-items:center;gap:10px;min-width:0}.entity .ent-name{font-weight:600;display:block;line-height:1.25;white-space:nowrap}.entity .ent-sub{display:block;color:var(--muted);font-size:12px}.entity .ent-sub a{color:inherit}.logo{flex:none;border-radius:8px;border:1px solid var(--line);background:var(--paper);object-fit:contain;display:inline-grid;place-items:center}.logo.placeholder{background:var(--soft-2);color:var(--muted);font-weight:700}.usage-cell{min-width:150px;max-width:260px;color:var(--ink-2)}.usage-cell .clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.badge{display:inline-block;border:1px solid var(--line-strong);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--paper);white-space:nowrap}.badge.dim{color:var(--muted);background:var(--soft);border-color:var(--line)}.badge.solid{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.badge.pink{background:var(--pink-soft);border-color:var(--pink-light);color:var(--pink-dark)}.badge.ok{border-color:var(--ok);color:var(--ok)}.badge.bad{border-color:var(--bad);color:var(--bad)}.filterbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filterbar input[type=search]{flex:0 1 280px;padding:8px 12px}.filterbar select{padding:8px 10px}.filterbar .actions{margin-left:auto;display:flex;gap:8px}.filterbar .count{color:var(--muted);font-size:13px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:8px 12px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--pink-dark);border-bottom-color:var(--pink-dark)}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--control-border);background:var(--paper);color:var(--ink);border-radius:8px;padding:8px 16px;font:inherit;font-weight:600;font-size:13.5px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--soft)}.btn.primary{border-color:var(--pink-dark);background:var(--pink-dark);color:#fff}.btn.primary:hover{background:var(--pink-press);border-color:var(--pink-press)}.btn.quiet{border-color:var(--pink-primary);background:var(--paper);color:var(--pink-dark)}.btn.quiet:hover{background:var(--pink-soft)}.btn.danger{background:var(--paper);color:var(--bad);border-color:var(--bad)}.btn.danger:hover{background:#fef2f2}.btn.sm{padding:5px 11px;font-size:12.5px}.btn:disabled{opacity:.6;cursor:default}.btn-row{display:inline-flex;gap:8px;align-items:center}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}.form-actions .primary{margin-left:auto}input[type=text],input[type=url],input[type=email],input[type=number],input[type=search],input:not([type]),select,textarea{padding:9px 12px;border:1px solid var(--control-border);border-radius:8px;font:inherit;color:var(--ink);background:var(--paper);max-width:100%;min-width:0;width:100%}input[type=file]{font:inherit;font-size:13px}textarea{resize:vertical}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:0 12px}@media(min-width:520px){.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;min-width:0}.field label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field .hint{color:var(--muted);font-size:12px}.field.check{flex-direction:row;align-items:center;gap:8px}.field.check input{width:auto}.form-error{background:#fef2f2;border:1px solid #fecaca;color:var(--bad);border-radius:8px;padding:10px 14px;font-size:13px}.notice{display:flex;align-items:center;gap:12px;border:1px solid var(--ok);border-left-width:4px;background:#f0fdf4;color:#14532d;border-radius:8px;padding:11px 14px;font-size:13.5px;font-weight:600}.notice.bad{border-color:var(--bad);background:#fef2f2;color:var(--bad)}.notice.info{border-color:var(--line-strong);background:var(--soft-2);color:var(--ink-2)}.notice span{flex:1}.notice a{color:inherit;text-decoration:underline;text-underline-offset:2px}.notice button{border:0;background:none;font:inherit;font-size:18px;line-height:1;cursor:pointer;color:var(--muted);padding:0 2px}.notice button:hover{color:var(--ink)}.picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;margin-top:4px}.pickgroup{border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px 12px;margin:0;min-width:0}.pickgroup legend{display:flex;align-items:baseline;gap:10px;padding:0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--faint)}.pickitem{display:flex;align-items:center;gap:8px;margin:0;padding:5px 0;font-size:13.5px;font-weight:400;color:var(--ink);cursor:pointer}.pickitem input{width:auto;flex:none;margin:0}.linkbtn{border:0;background:none;padding:0;font:inherit;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--pink-dark);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.linkbtn:hover{color:var(--pink-press)}.badges-row{display:flex;flex-wrap:wrap;gap:4px;max-width:320px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0;font-size:13.5px}.kv dt{color:var(--muted);font-weight:600;font-size:12.5px}.kv dd{margin:0;min-width:0}.kv dd.big{font-size:20px;font-weight:700;letter-spacing:-.3px}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:10px}.timeline li{display:grid;grid-template-columns:10px 1fr;gap:10px;align-items:start;font-size:13.5px}.timeline li:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--line-strong);margin-top:6px}.timeline li.accepted:before{background:var(--ok)}.timeline li.declined:before{background:var(--bad)}.timeline li.reopened:before{background:var(--warn)}.timeline .when{color:var(--muted);font-size:12px;display:block}.confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--soft-2);border-radius:8px;padding:10px 12px;font-size:13.5px}.confirm span{flex:1 1 200px}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:36px 24px;text-align:center;color:var(--muted);background:var(--paper)}.empty b{display:block;color:var(--ink-2);margin-bottom:4px}.login-wrap{min-height:100vh;display:grid;grid-template-rows:1fr auto;background:radial-gradient(60% 50% at 85% -10%,rgba(233,30,140,.08),transparent),var(--soft)}.login-center{display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:32px;box-shadow:0 20px 50px #1a1a2e14}.login-card .auth-brand{justify-content:center;padding:0 0 30px}.login-card form>.btn{width:100%;justify-content:center;padding:11px 16px;margin-bottom:4px}.login-card .sent{text-align:center;font-size:14px;color:var(--ink-2)}.login-card .sent b{display:block;margin-bottom:4px}.login-card .after{text-align:center;margin:24px 0 0;font-size:13.5px}.login-card .after .muted{display:block;font-size:13px;overflow-wrap:anywhere}.login-card .after .muted+br{display:none}.login-card .after a,.login-card .after button{display:inline-block;padding:8px 12px;color:var(--pink-dark);background:none;border:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.appfooter{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 24px;padding:16px 28px 20px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.appfooter nav{display:flex;flex-wrap:wrap;gap:24px}.appfooter a{color:var(--muted);text-decoration:none;padding:6px 0}.appfooter a:hover,.appfooter a:focus-visible{color:var(--ink);text-decoration:underline}.logo-dots{flex:none}.logo-dot{transition:fill .2s ease}.dot-a{animation:flickerA 12s infinite}.dot-b{animation:flickerB 12s infinite}.dot-c{animation:flickerC 12s infinite}.dot-d{animation:flickerD 12s infinite}.dot-e{animation:flickerE 12s infinite}.dot-f{animation:flickerF 12s infinite}.dot-g{animation:flickerG 12s infinite}.dot-h{animation:flickerH 12s infinite}@keyframes flickerA{0%,2%{fill:#1a1a2e}4%,10%{fill:#e53935}12%,to{fill:#1a1a2e}}@keyframes flickerE{0%,2%{fill:#1a1a2e}4%,10%{fill:#9ca3af}12%,to{fill:#1a1a2e}}@keyframes flickerC{0%,16%{fill:#1a1a2e}18%,26%{fill:#9ca3af}28%,to{fill:#1a1a2e}}@keyframes flickerF{0%,16%{fill:#1a1a2e}18%,26%{fill:#e53935}28%,to{fill:#1a1a2e}}@keyframes flickerB{0%,32%{fill:#1a1a2e}34%,42%{fill:#e53935}44%,to{fill:#1a1a2e}}@keyframes flickerG{0%,32%{fill:#1a1a2e}34%,42%{fill:#9ca3af}44%,to{fill:#1a1a2e}}@keyframes flickerD{0%,48%{fill:#1a1a2e}50%,58%{fill:#9ca3af}60%,to{fill:#1a1a2e}}@keyframes flickerH{0%,48%{fill:#1a1a2e}50%,58%{fill:#e53935}60%,to{fill:#1a1a2e}}@media(max-width:880px){.app{grid-template-columns:1fr}.mobile-nav-toggle{display:flex}.nav-backdrop{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:min(280px,82vw);height:100vh;height:100dvh;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{transform:translate(0);visibility:visible;transition:transform .2s ease}.topbar{padding:0 16px}.topbar .title-wrap p,.userchip .who{display:none}.userchip{padding:4px}.content{padding:16px 16px 40px}.appfooter{padding:12px 16px 16px;font-size:12px;gap:4px 14px}.appfooter nav{gap:14px}}
