:root{--navy-950:#061a30;--navy-900:#0a2440;--navy-800:#0e3355;--navy-700:#144270;--navy-600:#1a5288;--navy-500:#2166a3;--navy-400:#4886bd;--navy-300:#7fa9d1;--navy-100:#e6eef7;--gold-600:#d99418;--gold-500:#f0a827;--gold-400:#f6bc3e;--gold-300:#f8d15c;--gold-100:#fdf1d8;color-scheme:light;--bg:#f4f6fa;--bg-glow:rgba(33,102,163,0.07);--surface:#ffffff;--surface-2:#f7f9fc;--surface-raised:#ffffff;--border:#e3e8f0;--border-strong:#cdd6e3;--text:#13233a;--muted:#5f7189;--accent:#1a5288;--accent-strong:#0e3355;--accent-soft:rgba(26,82,136,0.09);--tint-1:rgba(20,66,112,0.035);--tint-2:rgba(20,66,112,0.07);--tint-3:rgba(20,66,112,0.12);--gold-soft:rgba(246,188,62,0.16);--gold-ink:#9a6508;--focus:rgba(33,102,163,0.28);--btn-primary-bg:#144270;--btn-primary-hover:#1a5288;--btn-primary-ink:#ffffff;--side-bg:linear-gradient(170deg,#0a2440,#0e3355 55%,#144270);--side-ink:#cfdcec;--side-muted:#9fb6cf;--side-hover:rgba(255,255,255,0.08);--side-active:rgba(255,255,255,0.13);--side-line:rgba(255,255,255,0.12);--brand-band:#ffffff;--danger:#b3261e;--danger-bg:#fdecea;--danger-border:rgba(179,38,30,0.25);--ok:#0f7a4e;--ok-bg:#e6f6ee;--ok-border:rgba(15,122,78,0.25);--warn-ink:#8a5a00;--warn-bg:#fff3d9;--warn-border:rgba(138,90,0,0.2);--info-ink:#14548c;--info-bg:#e7f1fb;--info-border:rgba(20,84,140,0.18);--shadow-sm:0 1px 2px rgba(15,35,60,0.05),0 1px 3px rgba(15,35,60,0.04);--shadow-md:0 10px 30px -12px rgba(15,35,60,0.22);--shadow-lg:0 20px 50px -18px rgba(15,35,60,0.35);--radius:16px;--radius-sm:10px;--ink:var(--text);--line:var(--border);--brand:var(--navy-700);--brand-ink:#ffffff}:root[data-theme=dark]{color-scheme:dark;--bg:#0b1220;--bg-glow:rgba(72,134,189,0.1);--surface:#121b2c;--surface-2:#172236;--surface-raised:#1a2539;--border:#243249;--border-strong:#33445f;--text:#e5ebf4;--muted:#93a3ba;--accent:#7fb2e5;--accent-strong:#a9cdf2;--accent-soft:rgba(127,178,229,0.13);--tint-1:rgba(148,180,220,0.04);--tint-2:rgba(148,180,220,0.08);--tint-3:rgba(148,180,220,0.14);--gold-soft:rgba(246,188,62,0.14);--gold-ink:#f6c55a;--focus:rgba(127,178,229,0.35);--btn-primary-bg:#2f6fae;--btn-primary-hover:#3a7fc2;--btn-primary-ink:#ffffff;--side-bg:#0a101c;--side-ink:#c3cfdf;--side-muted:#8193ab;--side-hover:rgba(255,255,255,0.06);--side-active:rgba(127,178,229,0.14);--side-line:rgba(255,255,255,0.08);--brand-band:#eef2f7;--danger:#f2877f;--danger-bg:rgba(242,135,127,0.12);--danger-border:rgba(242,135,127,0.3);--ok:#5fd3a0;--ok-bg:rgba(95,211,160,0.11);--ok-border:rgba(95,211,160,0.28);--warn-ink:#f6c55a;--warn-bg:rgba(246,197,90,0.12);--warn-border:rgba(246,197,90,0.28);--info-ink:#8cc0f0;--info-bg:rgba(140,192,240,0.11);--info-border:rgba(140,192,240,0.26);--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 12px 30px -12px rgba(0,0,0,0.55);--shadow-lg:0 22px 50px -18px rgba(0,0,0,0.7)}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;background:radial-gradient(1200px 500px at 70% -10%,var(--bg-glow),transparent 70%),var(--bg);background-attachment:fixed}a{color:var(--accent);text-underline-offset:2px}::selection{background:var(--gold-300);color:var(--navy-950)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a.card{text-decoration:none;color:inherit;display:block}.stat-card{display:flex;flex-direction:column;gap:.5rem}.stat-card-head{display:flex;align-items:center;gap:.6rem}.stat-card h2{margin:0;font-size:.78rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.stat-card .stat-value{font-size:1.65rem;font-weight:800;color:var(--text);letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-card .stat-sub{font-size:.82rem;color:var(--muted)}h1{font-size:1.7rem;margin:0 0 .3rem;letter-spacing:-.025em;font-weight:750;line-height:1.2}h2{font-size:1.12rem;margin:0 0 .8rem;letter-spacing:-.012em;font-weight:700}h3{letter-spacing:-.01em}.muted{color:var(--muted);font-size:.9rem}.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh;width:100%;align-content:start}.side{background:var(--side-bg);color:var(--side-ink);padding:1.5rem 1.15rem;gap:1.6rem;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--side-line)}.side,.side .brand{display:flex;flex-direction:column}.side .brand{margin:-1.5rem -1.15rem 1.5rem;padding:1.1rem 1.15rem 1.3rem;background:var(--brand-band);border-radius:0 0 20px 20px;box-shadow:0 10px 26px -12px rgba(3,12,24,.45);align-items:flex-start;gap:.5rem}.side .version-tag{font-size:.68rem;color:#5f7189;letter-spacing:.03em;display:inline-flex;align-items:center;gap:.3rem;font-weight:600}.side .version-tag img{height:13px;width:auto}.side .brand-mark-full{width:100%}.side .brand-mark-full img{display:block;height:46px;width:auto;max-width:100%;object-fit:contain}.side .brand-mark-icon{display:none}.side nav{display:flex;flex-direction:column;gap:.12rem}.side nav a{color:var(--side-ink);text-decoration:none;padding:.52rem .7rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:background .15s ease,color .15s ease;display:flex;align-items:center;gap:.65rem}.side nav a:hover{background:var(--side-hover);color:#fff}.side nav a:active{transform:scale(.98)}.side nav a.active{background:var(--side-active);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--gold-400)}.side .nav-icon{flex:none;width:19px;height:19px;opacity:.75;display:flex}.side .nav-icon svg{width:100%;height:100%}.side nav a.active .nav-icon{opacity:1;color:var(--gold-300)}.side .nav-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin:1rem .7rem .3rem;color:var(--gold-300);font-weight:700}.side .me{margin-top:auto;font-size:.85rem;padding-top:1rem;border-top:1px solid var(--side-line);display:flex;flex-direction:column;gap:.7rem}.side .me-identity{display:flex;align-items:center;gap:.6rem;text-decoration:none;border-radius:var(--radius-sm);padding:.3rem;margin:-.3rem}.side .me-identity:hover{background:var(--side-hover)}.side .me-identity strong{color:#fff;display:block;font-size:.92rem}.side .me-role{display:block;color:var(--side-muted);font-size:.78rem}.side .btn-link{color:var(--side-ink)}.side .btn-link:hover{color:#fff}.side-muted{color:var(--side-muted);font-size:.82rem}.me-actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.hamburger{display:none}.mobile-nav-panel{display:contents}.theme-switch{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid var(--side-line)}.theme-switch button{display:grid;place-items:center;width:28px;height:26px;border:0;border-radius:999px;background:none;color:var(--side-muted);cursor:pointer;padding:0;transition:background .15s ease,color .15s ease}.theme-switch button:hover{color:#fff}.theme-switch button[aria-pressed=true]{background:rgba(255,255,255,.16);color:#fff}.theme-switch svg{width:15px;height:15px}.main{padding:2.25rem 2.5rem 3rem;max-width:1280px;width:100%;margin:0 auto}@media (max-width:1080px){.shell{grid-template-columns:224px 1fr}.main{padding:1.75rem 1.75rem 2.5rem}}@media (max-width:800px){.shell{display:block;min-height:0}.side{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:auto;max-height:none;flex-wrap:wrap;padding:.75rem 1rem;gap:.75rem 1rem;border-right:0;border-bottom:1px solid var(--side-line)}.side,.side .brand{flex-direction:row;align-items:center}.side .brand{margin:0;padding:0;background:none;box-shadow:none;border-radius:0;gap:.5rem;width:auto}.side .brand-mark-full,.side .version-tag{display:none}.side .brand-mark-icon{display:grid;place-items:center;width:32px;height:32px;flex:none;background:var(--brand-band);border-radius:9px;padding:5px;box-shadow:0 3px 8px rgba(3,12,24,.35)}.side .brand-mark-icon img{width:100%;height:100%;object-fit:contain}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;flex:none;margin-left:auto;border:none;border-radius:9px;background:rgba(255,255,255,.12);cursor:pointer;padding:0}.hamburger span{display:block;width:18px;height:2px;border-radius:1px;background:#fff}.mobile-nav-panel{display:none;width:100%;order:10}.mobile-nav-panel.open{display:block;animation:nav-drop .15s ease-out}@keyframes nav-drop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.side nav{flex-direction:column;align-items:flex-start;gap:.15rem;padding-top:.75rem}.side nav a{width:100%}.side .me,.side .nav-title{margin-left:0}.side .me{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--side-line);text-align:left}.main{padding:1.25rem 1.1rem 2rem}h1{font-size:1.4rem}}@media (max-width:460px){.main{padding:1rem .8rem 1.75rem}.side{padding:.6rem .75rem}}.auth-card,.card,.mission-card,.piece,.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card{padding:1.4rem 1.5rem;margin:1.1rem 0}.grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tile{padding:1.15rem 1.2rem;text-decoration:none;color:inherit;display:block;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.tile:hover,a.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.tile:hover{transform:translateY(-2px)}.tile strong{display:block;margin-bottom:.2rem}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1.25rem}.auth-card{padding:2.25rem 2.25rem 2rem;width:100%;max-width:440px;box-shadow:var(--shadow-lg)}.auth-logo{display:flex;justify-content:center;margin-bottom:1.25rem}.auth-logo img{height:52px;width:auto}:root[data-theme=dark] .auth-logo img{background:var(--brand-band);padding:.5rem .8rem;border-radius:12px;height:68px}form{grid-gap:.95rem;gap:.95rem}form,label{display:grid}label{grid-gap:.3rem;gap:.3rem;font-size:.88rem;font-weight:600;color:var(--text)}label .hint{font-weight:400;color:var(--muted);font-size:.8rem}input,select,textarea{font:inherit;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font-weight:400;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}input:hover,select:hover,textarea:hover{border-color:var(--accent)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}.row{display:grid;grid-gap:.95rem;gap:.95rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.check{display:flex;gap:.55rem;align-items:flex-start;font-weight:400}.check input{width:auto;margin-top:.3rem;accent-color:var(--accent)}.checks{display:grid;grid-gap:.4rem;gap:.4rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.btn{font:inherit;font-weight:600;font-size:.92rem;padding:.6rem 1.1rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;min-height:42px;transition:transform .1s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:disabled{opacity:.6;cursor:wait}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-ink);box-shadow:0 1px 2px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.12)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);box-shadow:0 6px 16px -6px rgba(14,51,85,.55)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.btn-danger{background:var(--surface);border-color:var(--danger-border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-link{background:none;border:0;color:var(--accent);padding:0;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}.msg{padding:.65rem .85rem;border-radius:var(--radius-sm);margin:0;font-size:.92rem}.msg-error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.msg-ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border)}table{width:100%;border-collapse:collapse;font-size:.92rem}td,th{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--tint-1)}.table-wrap{overflow-x:auto;border-radius:var(--radius-sm)}.badge{display:inline-block;padding:.16rem .6rem;border-radius:999px;font-size:.74rem;font-weight:700;background:var(--accent-soft);color:var(--accent-strong);letter-spacing:.01em;white-space:nowrap}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn-ink)}.badge-off{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info-ink)}.inline{display:inline}.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}a.btn{text-decoration:none;display:inline-block}.btn-sm{padding:.38rem .8rem;font-size:.84rem;min-height:34px}.progress{background:var(--tint-2);border-radius:999px;height:10px;overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--navy-500),var(--gold-400))}.progress-lg{height:14px}.banner{background:var(--info-bg);border:1px solid var(--info-border);border-radius:var(--radius-sm);padding:.95rem 1.15rem;margin:1rem 0}.banner.warn{background:var(--warn-bg);border-color:var(--warn-border)}.mission-card{padding:1.1rem;text-decoration:none;color:inherit;display:grid;grid-gap:.5rem;gap:.5rem;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.mission-card:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.mission-card h3{margin:0;font-size:1rem}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.piece{padding:1.2rem;margin:1.1rem 0;display:grid;grid-gap:.8rem;gap:.8rem;page-break-inside:avoid;break-inside:avoid}.piece-head{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}.piece-head code{font-weight:700;font-size:1rem;background:var(--accent-soft);color:var(--accent-strong);padding:.15rem .55rem;border-radius:8px}.piece h3{margin:0;font-size:1rem;font-weight:600}.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:.5rem 1rem;gap:.5rem 1rem;margin:0;font-size:.85rem}.meta dt{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.meta dd{margin:0}.prose{white-space:pre-line;font-size:.9rem}details summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--accent)}.files{list-style:none;margin:0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem;font-size:.9rem}.files li{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .65rem;background:var(--surface-2)}.files .zipname{color:var(--muted);font-size:.8rem}.piece-form{border-top:1px dashed var(--border);padding-top:.8rem}.two{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:800px){.two{grid-template-columns:1fr}}.external-list{font-size:.9rem;display:grid;grid-gap:.3rem;gap:.3rem}.receipt{padding:0;overflow:hidden}.receipt-head{background:linear-gradient(120deg,var(--navy-800),var(--navy-600) 60%,var(--navy-500) 88%,var(--gold-500));color:#fff;padding:1.15rem 1.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.receipt-head h2{margin:0;color:#fff}.receipt-head .badge{background:rgba(255,255,255,.94)!important;color:var(--navy-800)!important;box-shadow:0 1px 3px rgba(0,0,0,.12)}.receipt-body{padding:1.3rem 1.4rem 1.5rem}.claim-table{width:100%;border-collapse:collapse;font-size:.9rem}.claim-table th{text-align:left;padding:.5rem .6rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.claim-table td,.claim-table th{border-bottom:1px solid var(--border)}.claim-table td{padding:.65rem .6rem}.claim-table td.num,.claim-table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.claim-table tbody tr:last-child td{border-bottom:none}.claim-total-box{margin-top:1.1rem;padding:1rem 1.2rem;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-soft),var(--gold-soft));border:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.claim-total-box .amount{font-size:1.6rem;font-weight:800;color:var(--accent-strong);letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.claim-subtotals{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.88rem;color:var(--muted);margin-top:.6rem}.claim-subtotals strong{color:var(--text);font-weight:600}.card-ok{background:var(--ok-bg);border-color:var(--ok-border)}@media print{:root,:root[data-theme=dark]{color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#fff;--text:#13233a;--muted:#5f7189;--border:#999;--accent:#1a5288;--accent-strong:#0e3355}.no-print,.side{display:none!important}.shell{display:block}.main{padding:0;max-width:none}body{background:#fff}.card,.piece,.receipt,.tile{border-color:#999;box-shadow:none;background:#fff}.receipt-head{background:var(--navy-800)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}details{display:block}details>summary{display:none}details>*{display:block}}.cal{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.cal-row{display:grid;grid-template-columns:repeat(7,1fr)}.cal-row+.cal-row{border-top:1px solid var(--border)}.cal-head-cell{padding:.5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;text-align:center;background:var(--surface-2)}.cal-cell{height:6.2rem;padding:.35rem;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem;background:var(--surface);overflow:hidden}.cal-cell:first-child{border-left:none}.cal-out{background:var(--surface-2)}.cal-out .cal-daynum{color:var(--muted);opacity:.7}.cal-today{background:var(--gold-soft)}.cal-daynum{font-size:.78rem;font-weight:700;color:var(--text);padding:.1rem .2rem}.cal-today .cal-daynum{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;background:var(--btn-primary-bg);color:#fff;border-radius:50%;padding:0}.cal-items{display:flex;flex-direction:column;gap:.18rem}.cal-pill{display:flex;align-items:center;gap:.3rem;font-size:.72rem;padding:.12rem .35rem;border-radius:6px;background:var(--tint-2);color:var(--accent-strong);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-pill:hover{background:var(--tint-3)}.cal-pill-filled{background:rgba(246,188,62,.28);color:var(--text);font-weight:600}.cal-pill-filled:hover{background:rgba(246,188,62,.42)}.cal-dot{width:6px;height:6px;border-radius:50%;flex:none}.cal-popup{width:260px;z-index:45;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:.7rem .8rem;font-size:.82rem;color:var(--text)}.cal-popup ul{margin:.3rem 0 0;padding-left:1.1rem}.cal-popup li{margin:.1rem 0}.cal-more{font-size:.68rem;color:var(--muted);padding:0 .35rem}@media (max-width:700px){.cal-cell{height:3.6rem}.cal-head-cell{font-size:.6rem;padding:.3rem .1rem}.cal-pill-text{display:none}.cal-pill{justify-content:center;padding:.12rem}}.next-box{display:flex;align-items:center;gap:.8rem}.next-box .next-icon{width:40px;height:40px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:1.1rem;background:var(--accent-soft);color:var(--accent)}.tile-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:.65rem}.tile-icon.gold{background:var(--gold-soft);color:var(--gold-ink)}.project-with-chat{display:grid;grid-template-columns:1fr 320px;grid-gap:1.5rem;gap:1.5rem;align-items:start}@media (max-width:1000px){.project-with-chat{grid-template-columns:1fr}}.project-chat{position:-webkit-sticky;position:sticky;top:1.5rem;background:linear-gradient(165deg,#2c2350,#1b1638);border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow-md);color:#ece7fb;display:flex;flex-direction:column;max-height:calc(100vh - 3rem);overflow:hidden}@media (max-width:1000px){.project-chat{position:static;max-height:26rem}}.project-chat-head{display:flex;align-items:center;gap:.65rem;padding:1rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.12)}.project-chat-head strong{color:#fff}.project-chat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:1.1rem;flex:none}.project-chat-body{flex:1 1;overflow-y:auto;padding:.9rem 1.1rem;display:flex;flex-direction:column;gap:.7rem}.project-chat-msg{background:rgba(255,255,255,.07);border-radius:10px;padding:.5rem .65rem;font-size:.85rem;border:1px solid rgba(255,255,255,.07)}.project-chat-msg.mine{background:rgba(240,168,39,.16);border-color:rgba(240,168,39,.25)}.project-chat-msg-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:#c3bce6;margin-bottom:.2rem}.project-chat-msg-head strong{color:#ece7fb}.project-chat-msg p{margin:0;white-space:pre-wrap;word-break:break-word}.project-chat-del{margin-top:.25rem}.project-chat-del .btn-link{color:#c3bce6}.project-chat-form{padding:.85rem 1.1rem 1.1rem;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-gap:.5rem;gap:.5rem}.project-chat-form textarea{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;border-radius:var(--radius-sm);resize:vertical}.project-chat-form textarea:focus{box-shadow:0 0 0 3px rgba(240,168,39,.25);border-color:rgba(240,168,39,.6)}.project-chat-form textarea::placeholder{color:#a79fce}.project-chat-form .btn-primary{justify-self:end}.finance-tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:.75rem 0 1.25rem;border-bottom:1px solid var(--border);padding-bottom:.1rem}.finance-tabs a{padding:.5rem .85rem;border-radius:8px 8px 0 0;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600;border-bottom:2px solid transparent}.finance-tabs a:hover{color:var(--accent);background:var(--tint-1)}.finance-tabs a.active{color:var(--accent-strong);border-bottom-color:var(--gold-500)}.avatar{border-radius:50%;object-fit:cover;flex:none;display:inline-flex;align-items:center;justify-content:center}.avatar-fallback{background:linear-gradient(135deg,var(--navy-500),var(--navy-800));color:#fff;font-weight:700;letter-spacing:.02em}.notif-bell,.notif-bell-btn{position:relative}.notif-bell-btn{display:grid;place-items:center;width:38px;height:38px;border:none;border-radius:10px;background:rgba(255,255,255,.1);color:var(--side-ink);cursor:pointer;padding:0}.notif-bell-btn:hover{background:rgba(255,255,255,.18);color:#fff}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 3px;border-radius:999px;background:#d93a30;color:#fff;font-size:.64rem;font-weight:800;display:grid;place-items:center;line-height:1;border:2px solid var(--navy-900)}.notif-panel{width:21rem;max-width:88vw;z-index:40;background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow:hidden;color:var(--text)}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border)}.notif-panel-body{max-height:22rem;overflow-y:auto}.notif-item{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem 1rem;text-decoration:none;color:inherit;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;font:inherit}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--tint-1)}.notif-item.unread{background:var(--gold-soft)}.notif-icon{font-size:1.05rem;flex:none;line-height:1.3}.notif-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.notif-text strong{font-size:.87rem}.notif-body{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-when{font-size:.72rem;color:var(--muted)}.notif-dot{width:7px;height:7px;border-radius:50%;background:var(--gold-500);flex:none;margin-top:.35rem}.brand-notif{display:flex;align-items:center;gap:.6rem;margin:-.6rem 0 .8rem}@media (max-width:800px){.brand-notif{margin:0}.brand-notif-label{display:none}}.address-suggestions{position:absolute;top:calc(100% + .3rem);left:0;right:0;z-index:30;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);overflow:hidden;max-height:14rem;overflow-y:auto}.address-suggestion{display:block;width:100%;text-align:left;padding:.55rem .7rem;font-size:.85rem;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;color:var(--text);font:inherit}.address-suggestion:last-child{border-bottom:none}.address-suggestion:hover{background:var(--tint-2)}.sig-layout{display:grid;grid-template-columns:minmax(0,1fr) 21rem;grid-gap:1.2rem;gap:1.2rem;align-items:start;margin-top:1rem}@media (max-width:1000px){.sig-layout{grid-template-columns:1fr}}.pdf-page{position:relative;width:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);overflow:hidden}.pdf-canvas{display:block;width:100%;height:auto}.pdf-loading,.pdf-overlay{position:absolute;inset:0}.pdf-loading{display:grid;place-items:center;background:#fff;color:#5f7189;z-index:2}.sig-zone{position:absolute;border:2px dashed;border-radius:4px;pointer-events:none}.sig-zone-active{border-style:solid;box-shadow:0 0 0 3px rgba(246,188,62,.35)}.sig-zone-label{position:absolute;left:-2px;top:-1.35rem;color:#fff;font-size:.68rem;font-weight:700;padding:.12rem .4rem;border-radius:4px 4px 4px 0;white-space:nowrap}.sig-pad{display:block;width:100%;height:11rem;background:#fff;border:1.5px dashed rgba(20,66,112,.4);border-radius:var(--radius-sm);touch-action:none;cursor:crosshair}.sig-signers{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem}.sig-signers li{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.sig-signers li.active{border-color:var(--gold-500);background:var(--gold-soft)}.sig-chip{width:10px;height:10px;border-radius:50%;flex:none}.sig-zone-remove{pointer-events:auto;margin-left:.35rem;border:none;background:rgba(255,255,255,.25);color:#fff;width:1.05rem;height:1.05rem;line-height:1;border-radius:50%;cursor:pointer;padding:0;font-size:.8rem}.sig-zone-remove:hover{background:rgba(255,255,255,.55)}.meal-box{margin:0 0 1rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--gold-soft)}.participants-editor{display:grid;grid-gap:.45rem;gap:.45rem;margin-top:.6rem}.participants-row{display:flex;align-items:center;gap:.6rem}.meal-participants{margin-top:.25rem;font-size:.85rem}.meal-participants summary{cursor:pointer;color:var(--accent)}.meal-participants form{margin-top:.5rem;min-width:15rem}.address-suggestion.active{background:var(--tint-3)}.address-suggestion{font-weight:500}.address-context{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:.1rem}.event-info{display:grid;grid-gap:.7rem;gap:.7rem;margin:.8rem 0 1rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.event-row{display:flex;align-items:flex-start;gap:.8rem}.event-ico{flex:none;width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:.65rem;background:var(--accent-soft);font-size:1.05rem}.event-main{min-width:0;padding-top:.1rem;line-height:1.35}.event-main strong{display:inline;font-size:1.02rem;color:var(--text)}.event-sub{display:block}.event-duration,.event-sub{color:var(--muted);font-size:.92rem}.event-tag{margin-left:.55rem;font-size:.72rem;font-weight:700;padding:.12rem .5rem;border-radius:999px;background:rgba(246,188,62,.28);color:var(--text);white-space:nowrap}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}.dash-todo{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem}.dash-todo a{color:var(--warn-ink);font-weight:600;text-decoration:none}.dash-todo a:hover{text-decoration:underline}.dash-stats{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:1.25rem 0}.dash-stats .card{margin:0;padding:1.1rem 1.2rem;transition:border-color .16s ease,box-shadow .16s ease}.dash-stats .progress{height:6px}.dash-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:stretch;margin-top:1.25rem}@media (max-width:460px){.dash-grid{grid-template-columns:1fr}}.dash-card{margin:0;padding:1.2rem 1.25rem 1rem;height:21.5rem;display:flex;flex-direction:column}.dash-card>.dash-list,.dash-card>.dash-scroll{flex:1 1;min-height:0;overflow-y:auto}@media (max-width:700px){.dash-card{height:auto;max-height:24rem}}.dash-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.dash-card-head h2{margin:0;display:flex;align-items:center;gap:.5rem}.dash-more{font-size:.84rem;font-weight:600;text-decoration:none;white-space:nowrap}.dash-more:hover{text-decoration:underline}.dash-count{font-size:.72rem}.dash-empty{color:var(--muted);font-size:.9rem;margin:.4rem 0 .6rem}.dash-list{list-style:none;margin:0 -.5rem;padding:0;display:grid;align-content:start}.dash-row{display:flex;align-items:center;gap:.8rem;padding:.55rem .5rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .12s ease}.dash-row:hover{background:var(--tint-1)}.dash-list li+li .dash-row{border-top:1px solid var(--border);border-radius:0}.dash-list li+li .dash-row:hover{border-radius:0}.dash-row-main{display:flex;flex-direction:column;min-width:0;flex:1 1;line-height:1.35}.dash-row-main strong{font-size:.92rem;font-weight:600;overflow:hidden}.dash-row-main strong,.dash-row-main>.dash-late,.dash-row-main>.muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.dash-row-main>.dash-late,.dash-row-main>.muted{font-size:.8rem;overflow:hidden}.dash-row .badge{flex:none}.dash-late{color:var(--danger);font-weight:600}.date-chip{flex:none;width:2.9rem;padding:.3rem 0;border-radius:10px;text-align:center;background:var(--accent-soft);color:var(--accent-strong);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;line-height:1.15}.date-chip b{display:block;font-size:1.12rem;letter-spacing:-.02em}.date-chip.gold{background:var(--gold-soft);color:var(--gold-ink)}.dash-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--accent);margin:0 .35rem}.dash-dot.late{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.dash-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5rem;gap:.5rem;margin:.3rem 0 .8rem}.dash-mini-stats div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .6rem}.dash-mini-stats b{display:block;font-size:1.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-mini-stats span{font-size:.75rem;color:var(--muted)}.dash-section-title{margin:2rem 0 .7rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.quick-links{display:flex;flex-wrap:wrap;gap:.5rem}.quick-links a{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:.86rem;font-weight:500;transition:border-color .15s ease,background .15s ease}.quick-links a:hover{border-color:var(--accent);background:var(--surface-2)}.quick-links svg{width:17px;height:17px;color:var(--accent)}a.card.stat-card{display:flex}.dash-card,.dash-list li{min-width:0}.dash-card{overflow:hidden}.dash-mini-stats{flex:none}.support-note{margin:0;font-size:.72rem;line-height:1.5;color:var(--side-muted);opacity:.85}.support-note a{color:var(--side-muted);text-decoration:none}.support-note a:hover{color:#fff;text-decoration:underline}.kind-picker{border:0;padding:0;margin:0;display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.kind-picker legend{font-size:.88rem;font-weight:600;margin-bottom:.4rem;padding:0}.kind-option{display:grid;grid-gap:.25rem;gap:.25rem;padding:1rem 1.1rem;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-weight:400;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.kind-option.selected,.kind-option:hover{border-color:var(--accent)}.kind-option.selected{background:var(--accent-soft);box-shadow:0 0 0 3px var(--focus)}.kind-option input{position:absolute;opacity:0;pointer-events:none}.kind-option strong{font-size:1rem}.kind-option .muted{font-size:.84rem}.kind-icon{font-size:1.6rem;line-height:1}.report-editor .card{margin:1rem 0}.save-indicator{position:-webkit-sticky;position:sticky;top:.6rem;z-index:15;display:flex;justify-content:flex-end;margin:.6rem 0 -.4rem;font-size:.82rem}.save-indicator>span{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;box-shadow:var(--shadow-sm)}@media (max-width:800px){.save-indicator{top:4.2rem}}.people-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.6rem}.people-head h2{margin:0}.people-total{color:var(--muted);font-size:.9rem}.people-total b{font-size:1.35rem;color:var(--accent-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.people-list{list-style:none;margin:0 0 .9rem;padding:0;display:grid;grid-gap:.7rem;gap:.7rem}.person-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:.75rem .85rem;display:grid;grid-gap:.55rem;gap:.55rem;animation:person-in .2s ease-out}@keyframes person-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.person-top{display:flex;align-items:center;gap:.75rem}.person-num{flex:none;width:1.7rem;height:1.7rem;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:700;font-size:.8rem}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);overflow:hidden}.stepper button{width:2.4rem;height:2.2rem;border:0;background:none;color:var(--accent);font-size:1.25rem;cursor:pointer;line-height:1}.stepper button:hover{background:var(--tint-2)}.stepper span{padding:0 .4rem;font-size:.9rem;min-width:4.2rem;text-align:center}.stepper b{font-size:1.05rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.person-remove{margin-left:auto;width:2rem;height:2rem;border-radius:50%;border:0;background:none;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer}.person-remove:hover{background:var(--danger-bg);color:var(--danger)}.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.chip-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:3.6rem}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:999px;padding:.32rem .7rem;font:inherit;font-size:.82rem;cursor:pointer;min-height:32px;transition:background .12s ease,border-color .12s ease,color .12s ease}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:#fff}.person-card textarea{min-height:2.6rem}.add-person{width:100%;min-height:48px;border-style:dashed;font-size:1rem}.report-validate{display:grid;grid-gap:.8rem;gap:.8rem;border-color:var(--accent-soft)}@media (min-width:801px){.report-validate{grid-template-columns:1fr auto;align-items:center}}.report-validate .msg{grid-column:1/-1}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}.theme-switch button.spin svg{animation:theme-spin .55s cubic-bezier(.4,0,.2,1)}@keyframes theme-spin{0%{transform:rotate(-120deg) scale(.4);opacity:.3}to{transform:none;opacity:1}}.participants-field{display:grid;grid-gap:.5rem;gap:.5rem}.participants-title{font-size:.88rem;font-weight:600}.participant-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.participant-chips li{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .35rem .3rem .75rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.85rem;font-weight:500}.participant-chips.readonly li{padding-right:.75rem}.participant-chips button{width:1.45rem;height:1.45rem;border-radius:50%;border:0;background:none;color:inherit;opacity:.65;font-size:1.05rem;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}.participant-chips button:hover{opacity:1;background:var(--danger-bg);color:var(--danger)}.participant-add{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.participant-add input{flex:1 1 14rem;width:auto}.todo-card{margin:1.25rem 0 0}.todo-add{margin-bottom:.6rem}.todo-add>input[name=title]{width:100%}.todo-add-more{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin-top:.5rem}.todo-add-more label{flex:1 1 9rem;margin:0}.todo-list{list-style:none;margin:0;padding:0}.todo-row{display:flex;align-items:flex-start;gap:.65rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.todo-row:last-child{border-bottom:0}.todo-check{width:1.35rem;height:1.35rem;border-radius:50%;border:2px solid var(--accent);background:transparent;color:#fff;font-size:.8rem;line-height:1;padding:0;cursor:pointer;flex:none;margin-top:.1rem}.todo-check:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.todo-row.done .todo-check{background:var(--accent)}.todo-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.todo-title{overflow-wrap:anywhere}.todo-row.done .todo-title{text-decoration:line-through;color:var(--muted)}.todo-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.78rem;color:var(--muted)}.todo-due.late{color:var(--danger);font-weight:600}.todo-due.soon{color:var(--warn-ink);font-weight:600}.todo-delete{background:none;border:0;color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer;padding:0 .2rem}.todo-delete:hover{color:var(--danger)}.todo-more{margin-top:.6rem;font-size:.9rem}.todo-more summary{cursor:pointer;color:var(--muted)}.convocations{border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;margin:1rem 0}.type-switch{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--border);border-radius:999px;margin:.25rem 0 1rem}.type-switch a{padding:.4rem 1rem;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600}.type-switch a.active{background:var(--accent);color:#fff}.etp-upload{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem}.etp-upload input[type=file]{flex:1 1 14rem}.etp-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.etp-grid>.card{margin:0}.etp-consent{display:inline-flex;align-items:center;gap:.4rem}.etp-chat{--chat-a:#0d9488;--chat-b:#0891b2;--chat-bg:#f0fdfa;--chat-other:#ffffff;--chat-other-border:#d5eeec;--chat-ink:#0f2e2c;--chat-soft:#5b7b78;margin-top:1.25rem;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;background:var(--chat-bg);border:1px solid var(--chat-other-border);box-shadow:0 10px 30px -18px rgba(8,145,178,.45)}:root[data-theme=dark] .etp-chat{--chat-bg:#0b2226;--chat-other:#12343a;--chat-other-border:#1d4a51;--chat-ink:#e3f6f4;--chat-soft:#8fb5b1}.etp-chat-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.2rem;color:#fff;background:linear-gradient(120deg,var(--chat-a),var(--chat-b))}.etp-chat-head strong{display:block;font-size:1rem}.etp-chat-head span{font-size:.75rem;opacity:.85}.etp-chat-dot{width:.7rem;height:.7rem;border-radius:50%;background:#5eead4;box-shadow:0 0 0 4px rgba(94,234,212,.3);flex:none}.etp-chat-body{height:26rem;overflow-y:auto;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.15rem;background-image:radial-gradient(circle at 1px 1px,rgba(13,148,136,.07) 1px,transparent 0);background-size:18px 18px}.etp-chat-empty{margin:auto;color:var(--chat-soft);font-size:.9rem}.etp-chat-day{align-self:center;margin:.8rem auto .4rem;padding:.2rem .7rem;border-radius:999px;font-size:.72rem;font-weight:600;color:var(--chat-soft);background:color-mix(in srgb,var(--chat-a) 10%,transparent);text-align:center;width:-moz-fit-content;width:fit-content}.etp-chat-row{display:flex;align-items:flex-end;gap:.45rem;margin-top:.55rem}.etp-chat-row.grouped{margin-top:.12rem}.etp-chat-row.mine{justify-content:flex-end}.etp-chat-avatar{width:30px;flex:none}.etp-chat-bubble{max-width:min(72%,34rem);padding:.5rem .8rem .35rem;border-radius:16px 16px 16px 6px;background:var(--chat-other);border:1px solid var(--chat-other-border);color:var(--chat-ink);box-shadow:0 1px 2px rgba(15,46,44,.06)}.etp-chat-row.mine .etp-chat-bubble{border:0;border-radius:16px 16px 6px 16px;color:#fff;background:linear-gradient(135deg,var(--chat-a),var(--chat-b))}.etp-chat-author{display:block;font-size:.74rem;font-weight:700;color:var(--chat-a);margin-bottom:.1rem}:root[data-theme=dark] .etp-chat-author{color:#5eead4}.etp-chat-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.etp-chat-meta{display:flex;justify-content:flex-end;gap:.5rem;font-size:.66rem;opacity:.7;margin-top:.15rem}.etp-chat-meta button{background:none;border:0;padding:0;color:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;opacity:0;transition:opacity .15s}.etp-chat-bubble:hover .etp-chat-meta button,.etp-chat-meta button:focus-visible{opacity:1}@media (hover:none){.etp-chat-meta button{opacity:.8}}.etp-chat-form{display:flex;align-items:flex-end;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--chat-other-border);background:var(--chat-other)}.etp-chat-form textarea{flex:1 1;resize:none;min-height:2.6rem;max-height:8rem;border-radius:22px;padding:.65rem 1rem;border:1px solid var(--chat-other-border);background:var(--chat-bg);color:var(--chat-ink);field-sizing:content}.etp-chat-form textarea:focus{outline:none;border-color:var(--chat-a);box-shadow:0 0 0 3px color-mix(in srgb,var(--chat-a) 22%,transparent)}.etp-chat-send{width:2.6rem;height:2.6rem;border-radius:50%;border:0;color:#fff;cursor:pointer;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,var(--chat-a),var(--chat-b));box-shadow:0 6px 14px -6px rgba(8,145,178,.7);transition:transform .12s ease}.etp-chat-send:hover{transform:scale(1.06)}.etp-chat-send:disabled{opacity:.6;transform:none}.etp-chat-error{padding:0 1rem .5rem;color:var(--danger);font-size:.8rem}.etp-chat-error,.etp-chat-note{margin:0;background:var(--chat-other)}.etp-chat-note{padding:0 1rem .7rem;font-size:.7rem;color:var(--chat-soft)}@media (max-width:600px){.etp-chat-body{height:22rem}.etp-chat-bubble{max-width:85%}}.etp-chat-row.pending .etp-chat-bubble{opacity:.78}.etp-chat-row.failed .etp-chat-bubble{opacity:1;background:var(--danger)}.etp-chat-failed{font-weight:700}.etp-chat-retry{opacity:1!important;font-weight:700}.scan-anchor{gap:.5rem;flex-wrap:wrap}.scan-anchor,.scan-anchor>.btn{display:inline-flex;align-items:center}.scan-anchor>.btn{gap:.35rem}.scan-overlay{position:fixed;inset:0;z-index:1000;background:#0f1115;color:#fff;display:flex;flex-direction:column}.scan-stage{flex:1 1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:.75rem}.scan-stage svg{width:100%;height:100%;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.scan-frame{fill:rgba(13,148,136,.18);stroke:#2dd4bf;stroke-linejoin:round}.scan-handle{fill:rgba(255,255,255,.9);stroke:#0d9488;cursor:-webkit-grab;cursor:grab}.scan-busy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;background:rgba(0,0,0,.75);padding:.6rem 1rem;border-radius:10px}.scan-pages{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;align-content:flex-start;overflow-y:auto;max-height:100%}.scan-pages figure{margin:0;background:#fff;border-radius:6px;padding:.3rem;width:min(42vw,220px)}.scan-pages img{display:block;width:100%;height:auto}.scan-pages figcaption{display:flex;justify-content:space-between;color:#222;font-size:.75rem;padding-top:.25rem}.scan-bar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center;padding:.75rem 16px calc(.75rem + env(safe-area-inset-bottom));background:#181b21}.scan-toggle{display:inline-flex;align-items:center;gap:.35rem;margin:0;color:#fff;font-size:.9rem}.scan-toggle input{width:auto;margin:0}.convention-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}.convention-grid>div>.card{margin-top:0}@media (max-width:960px){.convention-grid{grid-template-columns:1fr}}.convention-body{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.5}.ob-wrap{position:fixed;inset:auto 0 0 0;z-index:60;display:flex;justify-content:center;padding:0 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}.ob-sheet{pointer-events:auto;position:relative;width:100%;max-width:440px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:22px;padding:1.3rem 1.3rem 1.1rem;box-shadow:0 24px 60px -18px rgba(8,24,48,.55);animation:ob-up .45s cubic-bezier(.2,1.2,.4,1) both}@keyframes ob-up{0%{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}.ob-icon{width:52px;height:52px;border-radius:13px;display:block;margin-bottom:.7rem;box-shadow:0 6px 16px -6px rgba(8,24,48,.5)}.ob-sheet h2{font-size:1.12rem;margin:0 0 .35rem}.ob-sheet p{margin:0 0 .8rem;color:var(--muted);font-size:.93rem}.ob-steps{margin:0 0 1rem;padding-left:1.2rem;display:grid;grid-gap:.45rem;gap:.45rem;font-size:.93rem}.ob-inline{vertical-align:-3px;color:#0a84ff}.ob-actions{display:flex;gap:.6rem;flex-wrap:wrap}.ob-actions .btn{flex:1 1;justify-content:center}.ob-note{color:var(--text)!important;font-weight:600}@media (min-width:821px){.ob-wrap{justify-content:flex-end;padding:0 24px 24px}}@media (prefers-reduced-motion:reduce){.ob-sheet{animation:none}}