:root{--bg: #ebebe9;--card: #f5f5f3;--tx: #262523;--mut: #6b6763;--mid: #989490;--bd: rgba(152, 148, 144, .35);--ac: #262523;--acx: #f5f5f3;--soft: #e0dfdc;--warn: #a85f2c;--ok: #4f8a5b;--bad: #b5533f;--info: #5b76a6;--pend: #b5832a;--sh: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 22px 40px -22px rgba(60, 55, 50, .28);--radius: 28px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1a1918;--card: #242321;--tx: #ecebe8;--mut: #a29e99;--mid: #7d7975;--bd: rgba(152, 148, 144, .25);--ac: #ebebe9;--acx: #1a1918;--soft: #2e2c2a;--warn: #d9945c;--ok: #74ad80;--bad: #d97a66;--info: #86a0cf;--pend: #d9ab55;--sh: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 22px 40px -22px rgba(0, 0, 0, .6);color-scheme:dark}}:root[data-theme=dark]{--bg: #1a1918;--card: #242321;--tx: #ecebe8;--mut: #a29e99;--mid: #7d7975;--bd: rgba(152, 148, 144, .25);--ac: #ebebe9;--acx: #1a1918;--soft: #2e2c2a;--warn: #d9945c;--ok: #74ad80;--bad: #d97a66;--info: #86a0cf;--pend: #d9ab55;--sh: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 22px 40px -22px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}html{scroll-padding-top:calc(72px + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.6 Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top,0px);min-height:100dvh}select,input,textarea,button{font:inherit;color:var(--tx)}a{color:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.app-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent}.app-header.scrolled{border-bottom-color:var(--bd)}.app-header-inner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;max-width:980px;margin:0 auto;padding:14px 20px}.brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;letter-spacing:-.01em;text-decoration:none}.brand-mark{width:36px;height:36px;flex:none;object-fit:contain;background:#f5f5f3;border-radius:10px;padding:3px}.brand-lockup{display:block;height:auto;max-height:200px;object-fit:contain}.brand-lockup.sm{width:min(140px,50%)}.brand-lockup.md{width:min(168px,58%)}.brand-lockup.lg{width:min(188px,64%)}.auth-brand{display:flex;justify-content:center;margin:0 0 12px}.logo{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,var(--mid));color:#262523;font-weight:500;font-size:13px;box-shadow:0 6px 14px -6px #3c373280}.header-actions{display:flex;align-items:center;gap:8px}.account-menu{position:relative}.account-menu>button{display:inline-flex;align-items:center}.account-caret{margin-left:6px;font-size:10px;opacity:.7}.account-menu-list{position:absolute;right:0;top:calc(100% + 6px);min-width:168px;z-index:40;display:flex;flex-direction:column;padding:6px;border:1px solid var(--bd);border-radius:16px;background:var(--card);box-shadow:var(--sh)}.account-menu-list a,.account-menu-list button{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:12px;color:inherit;font:inherit;font-size:14px;text-decoration:none;cursor:pointer}.account-menu-list a:hover,.account-menu-list button:hover{background:var(--soft)}main.app-main{max-width:980px;margin:0 auto;padding:8px 20px calc(120px + env(safe-area-inset-bottom,0px))}nav.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;gap:2px;max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:none;padding:6px;border-radius:99px;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--bd);box-shadow:0 18px 40px -12px #28242059}nav.tabbar::-webkit-scrollbar{display:none}nav.tabbar a{white-space:nowrap;border:0;background:none;padding:10px 16px;border-radius:99px;cursor:pointer;color:var(--mut);font-weight:500;font-size:13px;text-decoration:none;transition:background .25s,color .25s}nav.tabbar a:hover{color:var(--tx)}nav.tabbar a.active{background:var(--ac);color:var(--acx)}h1,.page-title{margin:20px 0 6px;font-size:clamp(30px,6vw,46px);font-weight:300;letter-spacing:-.035em;line-height:1.08}.page-lede{margin:0 0 22px;color:var(--mut);max-width:62ch}h2{margin:28px 0 12px;font-size:20px;font-weight:500;letter-spacing:-.02em}h3{margin:0 0 6px;font-size:16px;font-weight:500;letter-spacing:-.01em}h4{margin:0 0 4px;font-size:14px;font-weight:500}p{margin:8px 0}.mut{color:var(--mut);font-size:13px}.warn{color:var(--warn)}.ok{color:var(--ok)}.bad{color:var(--bad)}.nowrap{white-space:nowrap}.pre-wrap{white-space:pre-wrap}.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--radius);padding:24px;margin-bottom:16px;box-shadow:var(--sh);animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.card.flat{box-shadow:none;background:transparent}.card.tight{padding:18px 20px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.card-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.grid .card{margin:0}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.divider{height:1px;background:var(--bd);margin:16px 0;border:0}label.field{display:block;margin:0 0 12px}label.field>span.label-text{display:block;font-size:13px;color:var(--mut);margin-bottom:2px}input,textarea,select{width:100%;padding:12px 16px;border:1px solid var(--bd);border-radius:18px;background:var(--bg);margin:4px 0 0;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;min-height:90px;line-height:1.55}input:focus,textarea:focus,select:focus{outline:0;border-color:var(--mid);box-shadow:0 0 0 4px color-mix(in srgb,var(--mid) 22%,transparent)}input[type=file]{padding:10px 14px;font-size:13px}input[type=checkbox],input[type=radio]{width:auto;margin:0;accent-color:var(--ac)}.check{display:flex;gap:10px;align-items:flex-start;margin:8px 0;cursor:pointer;font-size:14px}.check input{margin-top:4px;flex:none}.field-error{color:var(--bad);font-size:12px;margin-top:4px}fieldset{border:1px solid var(--bd);border-radius:18px;padding:14px 16px;margin:0 0 12px}legend{font-size:13px;color:var(--mut);padding:0 6px}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--ac);color:var(--acx);border:1px solid transparent;padding:11px 20px;border-radius:99px;cursor:pointer;font-weight:500;font-size:13px;letter-spacing:.01em;text-decoration:none;transition:transform .2s,opacity .2s,background .2s}.btn:hover:not(:disabled){transform:translateY(-1px);opacity:.88}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.s{background:transparent;border-color:var(--mid);color:var(--tx)}.btn.s:hover:not(:disabled){background:var(--soft);opacity:1}.btn.ghost{background:transparent;border-color:transparent;color:var(--mut);padding:8px 12px}.btn.ghost:hover:not(:disabled){color:var(--tx);background:var(--soft)}.btn.danger{background:transparent;border-color:color-mix(in srgb,var(--bad) 50%,transparent);color:var(--bad)}.btn.tiny{padding:6px 12px;font-size:12px}.btn.block{width:100%;justify-content:center}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.tag{display:inline-block;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:3px 11px;border-radius:99px;background:var(--soft);color:var(--mut);vertical-align:middle;white-space:nowrap}.tag.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.tag.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}.tag.info{color:var(--info);background:color-mix(in srgb,var(--info) 15%,transparent)}.tag.pend{color:var(--pend);background:color-mix(in srgb,var(--pend) 15%,transparent)}.tag.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.photos{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.photos a{display:block;line-height:0}.photos img{width:84px;height:84px;object-fit:cover;border-radius:22px;border:1px solid var(--bd);background:var(--soft)}.photos .doc{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:18px;border:1px solid var(--bd);background:var(--bg);font-size:13px;text-decoration:none;max-width:220px}.photos .doc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-pending{position:relative}.photo-pending .remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:1px solid var(--bd);background:var(--card);color:var(--tx);font-size:12px;line-height:1;cursor:pointer;display:grid;place-items:center}.picker{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border:1px dashed var(--mid);border-radius:99px;cursor:pointer;font-size:13px;font-weight:500;color:var(--mut);transition:background .2s,color .2s}.picker:hover{background:var(--soft);color:var(--tx)}.picker input{display:none}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:14px}td,th{padding:9px 8px 9px 0;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}th{font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;padding-right:0;font-variant-numeric:tabular-nums}.bar-track{height:10px;background:var(--soft);border-radius:99px;overflow:hidden;margin:4px 0 12px}.bar{height:100%;background:var(--mid);border-radius:99px}.stat{display:flex;flex-direction:column;gap:2px}.stat .value{font-size:clamp(24px,4vw,30px);font-weight:300;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat .label{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:18px}.note{padding:12px 0;border-top:1px solid var(--bd)}.note:first-of-type{border-top:0}.note-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px}.note-head .who{font-weight:500}.note-body{margin:4px 0 0;white-space:pre-wrap;font-size:14px}.thread{margin-top:8px;border-top:1px solid var(--bd)}.empty{text-align:center;padding:36px 20px;color:var(--mut);font-size:14px}.banner{border-radius:18px;padding:12px 16px;font-size:13px;border:1px solid var(--bd);background:var(--soft);margin-bottom:14px}.banner.error{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 10%,transparent)}.banner.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent)}.banner.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent);background:color-mix(in srgb,var(--warn) 10%,transparent)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--bd);border-top-color:var(--mut);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:grid;place-items:center;min-height:60vh;gap:12px;color:var(--mut)}.toast-stack{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100% - 32px))}.toast{padding:12px 18px;border-radius:18px;font-size:13px;border:1px solid var(--bd);background:var(--card);box-shadow:0 18px 40px -16px #28242073;animation:rise .3s cubic-bezier(.2,.7,.2,1) both}.toast.error{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.toast.success{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.filters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-bottom:14px}.filters::-webkit-scrollbar{display:none}.filters button{white-space:nowrap;border:1px solid var(--bd);background:transparent;color:var(--mut);padding:7px 14px;border-radius:99px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.filters button.on{background:var(--ac);border-color:var(--ac);color:var(--acx)}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px 20px calc(40px + env(safe-area-inset-bottom,0px))}.auth-card{width:min(440px,100%)}.auth-card .page-title{margin-top:4px;font-size:clamp(22px,5vw,28px);text-align:center}.auth-card .page-lede{text-align:center;max-width:none}.auth-switch{display:flex;gap:4px;padding:4px;border-radius:99px;background:var(--soft);margin-bottom:20px}.auth-switch button{flex:1;border:0;background:none;padding:9px;border-radius:99px;font-size:13px;font-weight:500;color:var(--mut);cursor:pointer;transition:background .2s,color .2s}.auth-switch button.on{background:var(--card);color:var(--tx);box-shadow:0 2px 8px -4px #28242066}.auth-footer{margin:12px 0 0;text-align:center}.auth-footer button{background:none;border:0;padding:4px;color:var(--ac);font:inherit;font-size:13px;cursor:pointer}.md h1,.md h2,.md h3{letter-spacing:-.02em}.md h1{font-size:26px;font-weight:400;margin:0 0 12px}.md h2{font-size:17px;font-weight:500;margin:22px 0 6px}.md h3{font-size:15px;margin:16px 0 4px}.md ul{margin:8px 0;padding-left:20px}.md li{margin:3px 0}.md hr{border:0;border-top:1px solid var(--bd);margin:20px 0}.md p{margin:8px 0}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.chip{border:1px solid var(--bd);background:transparent;border-radius:99px;padding:8px 14px;cursor:pointer;color:var(--tx)}.chip.on{background:var(--ac);color:var(--acx);border-color:var(--ac)}@media(max-width:640px){.card{border-radius:24px;padding:20px}.app-header-inner{padding:12px 16px}main.app-main{padding:4px 16px calc(116px + env(safe-area-inset-bottom,0px))}}@media(min-width:1100px){.app-header-inner,main.app-main{max-width:1060px}}
