:root{--bg:#f5f4f0;--panel:#fffefa;--ink:#252936;--muted:#83858e;--line:#e9e8e4;--accent:#d96147;--soft:#f9e9e2;--shadow:0 12px 40px #24273406;--nav:#fffefa;--green:#337c64;--input:#f7f6f2;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink)}body.dark{--bg:#171a22;--panel:#21252f;--ink:#edeef3;--muted:#a1a7b5;--line:#333845;--accent:#ff977d;--soft:#3e2c2c;--nav:#1c2029;--input:#292e3a;--green:#8cc9b0;color-scheme:dark}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #d9614770;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #d9614750;outline-offset:2px}button{border:0;color:inherit;background:transparent}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:34px;font-weight:600;letter-spacing:-1.3px;line-height:1.2}h2{font-size:20px;font-weight:600;letter-spacing:-.5px}h3{font-size:14px;font-weight:650}.muted{color:var(--muted)}.small{font-size:12px}.caps{font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted)}.logo{width:124px;height:45px;object-fit:contain;object-position:left}body.dark .logo{content:url('assets/alto-logo-clair.svg')}.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:11px 17px;border-radius:12px;background:var(--input);font-weight:600;text-decoration:none;border:1px solid var(--line);transition:transform .18s,background .18s}.btn:hover{transform:translateY(-1px);background:var(--soft)}.btn.primary{background:var(--ink);color:var(--panel);border-color:var(--ink)}.btn.accent{background:var(--accent);color:white;border-color:var(--accent)}.btn.subtle{border:0;background:transparent}.icon-btn{display:inline-grid;place-items:center;width:37px;height:37px;border-radius:11px;border:1px solid var(--line);background:var(--panel)}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--input);padding:12px 13px;border-radius:11px;color:var(--ink)}textarea{resize:vertical;min-height:100px}label{display:grid;gap:6px;font-size:12px;font-weight:600}form{display:grid;gap:17px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stack{display:grid;gap:18px}.row{display:flex;align-items:center;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.login{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;padding:24px;gap:24px}.login-art{border-radius:30px;background:#252936;position:relative;overflow:hidden;padding:45px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.login-art:after{content:'';position:absolute;width:500px;height:500px;border:1px solid #ffffff18;border-radius:50%;bottom:-170px;right:-180px;box-shadow:0 0 0 60px #ffffff03,0 0 0 120px #ffffff03}.login-art img{width:170px;position:relative;z-index:1}.login-art h1{font-size:56px;max-width:500px;line-height:1.05;letter-spacing:-2.7px}.login-art h1 em{font-style:normal;color:#ffac95}.login-art p{color:#b4b7c1;margin-top:22px;max-width:320px}.login-form{display:grid;place-content:center;padding:30px}.login-form>div{width:min(360px,80vw)}.login-form h2{font-size:28px;margin-bottom:10px}.login-form form{margin-top:30px}.error{color:var(--accent);font-size:13px;min-height:20px}.shell{display:grid;grid-template-columns:218px 1fr;min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:var(--nav);padding:30px 20px 20px;border-right:1px solid var(--line)}.sidebar .logo{margin:0 16px 35px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border-radius:12px;font-weight:500;color:var(--muted)}.nav button.active{background:var(--soft);color:var(--accent)}.nav button:hover{background:var(--input)}.sidebar-bottom{margin-top:auto}.profile{border-top:1px solid var(--line);padding-top:20px;margin-top:18px}.avatar{width:35px;height:35px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:12px}.workspace{min-width:0;padding:0 38px 32px}.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.crumb{color:var(--muted);font-size:12px}.top-right{display:flex;align-items:center;gap:16px}.top-right .dot{width:7px;height:7px;background:var(--green);border-radius:50%}.page{padding-top:32px;animation:enter .35s ease}.page-head{margin-bottom:27px}.page-head p{color:var(--muted);margin-top:8px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.metric{padding:21px 23px;border:1px solid var(--line);border-radius:19px;background:var(--panel);box-shadow:var(--shadow)}.metric .num{font-size:32px;letter-spacing:-1px;font-weight:550;margin:11px 0 2px}.metric .icon{color:var(--muted)}.metric.urgent{background:var(--soft);border-color:transparent}.metric.urgent .num{color:var(--accent)}.toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px;align-items:center}.search{max-width:340px;position:relative;flex:1}.search input{padding-left:40px;background:var(--panel)}.search svg{position:absolute;top:12px;left:13px;color:var(--muted);width:17px}.pills{display:flex;gap:5px;background:var(--panel);border:1px solid var(--line);padding:4px;border-radius:12px}.pills button{padding:7px 11px;border-radius:8px;font-size:12px;color:var(--muted)}.pills button.active{background:var(--ink);color:var(--panel)}.ticket-list{display:grid;gap:11px}.ticket-card{width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:17px;display:grid;grid-template-columns:43px minmax(180px,1.6fr) minmax(130px,1fr) 130px 80px;align-items:center;gap:16px;padding:19px 20px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.ticket-card:hover{transform:translateY(-2px);box-shadow:0 12px 25px #2529360a}.ticket-symbol{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--input);color:var(--muted)}.ticket-card h3{margin:5px 0}.ticket-card .address{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:550;padding:5px 9px;border-radius:8px;background:var(--input);white-space:nowrap}.badge.new{background:#e8eef9;color:#5475ad}.badge.urgent{background:#fae4de;color:#b3523f}.badge.closed{background:#e2f0e8;color:#47785d}.badge.approval,.badge.quotes{background:#f3eddf;color:#96702f}.badge.scheduled,.badge.verification{background:#ece7f4;color:#7b60a2}.empty{text-align:center;padding:65px 24px;border:1px dashed var(--line);border-radius:20px}.empty .icon{width:32px;height:32px;color:var(--accent);margin-bottom:15px}.empty p{color:var(--muted);margin-top:8px}.board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:15px;overflow-x:auto;padding-bottom:16px}.column{background:var(--input);padding:13px;border-radius:18px;min-height:300px}.column>h3{padding:5px 5px 15px;color:var(--muted);font-size:12px}.column .ticket-card{grid-template-columns:1fr;padding:16px;gap:12px;margin-bottom:10px}.column .ticket-symbol{display:none}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.panel h2,.panel h3{margin-bottom:17px}.description{white-space:pre-wrap;font-size:14px;line-height:1.8}.contact-lines{display:grid;gap:16px}.contact-lines .row{align-items:flex-start}.contact-lines .icon{color:var(--muted);width:17px;margin-top:2px}.contact-lines small{display:block;color:var(--muted);margin-bottom:2px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}.media-tile{position:relative;border-radius:14px;overflow:hidden;background:var(--input);height:130px;display:grid;place-items:center;width:100%}.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.media-tile .play{position:relative;z-index:1;border-radius:50%;width:40px;height:40px;background:#ffffffdd;color:#252936;display:grid;place-items:center}.media-tile .badge{position:absolute;bottom:7px;left:7px;background:#252936bb;color:white}.timeline{display:grid;gap:20px}.event{border-left:2px solid var(--line);padding-left:15px;font-size:12px}.event p{white-space:pre-wrap;margin-top:5px}.event time{display:block;color:var(--muted);font-size:10px;margin-top:5px}.table{width:100%;border-collapse:collapse}.table th{font-size:11px;font-weight:500;color:var(--muted);text-align:left;padding:12px;border-bottom:1px solid var(--line)}.table td{padding:15px 12px;border-bottom:1px solid var(--line)}dialog{width:min(650px,94vw);max-height:90dvh;border:1px solid var(--line);border-radius:24px;background:var(--panel);color:var(--ink);padding:28px;box-shadow:0 30px 90px #0003}dialog::backdrop{background:#171b2970;backdrop-filter:blur(8px)}dialog>header{margin-bottom:22px}dialog video,dialog img{max-width:100%;max-height:65vh;border-radius:14px}dialog audio{width:100%}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--panel);padding:13px 22px;border-radius:13px;opacity:0;pointer-events:none;transition:.2s;z-index:20;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes enter{from{transform:translateY(7px)}to{transform:none}}@media(min-width:1500px){.workspace{padding-left:65px;padding-right:65px}}@media(max-width:1100px){.shell{grid-template-columns:180px 1fr}.sidebar{padding:25px 12px}.workspace{padding:0 22px 25px}.ticket-card{grid-template-columns:36px 1fr 110px}.ticket-card .secondary{display:none}.detail-grid{grid-template-columns:1fr 260px}.metrics{gap:10px}.metric{padding:16px}.metric .small{font-size:10px}}@media(min-width:768px) and (max-width:1100px){.shell{grid-template-columns:76px 1fr}.sidebar{padding:26px 10px}.sidebar .logo{width:52px;height:52px;margin:0 2px 26px;content:url('assets/alto-icone.svg')!important}.nav button{font-size:0;justify-content:center;padding:14px}.nav button svg{width:22px;height:22px}.sidebar-bottom>.caps,.sidebar-bottom>p,.profile>div{display:none}.profile{justify-content:center}.workspace{padding:0 20px 28px}.detail-grid{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.panel{padding:18px}.page-head h1{font-size:29px}.topbar{height:72px}.toolbar{flex-wrap:wrap}.search{max-width:none;min-width:240px}.metrics{gap:10px}.metric{padding:16px}.ticket-card{grid-template-columns:34px minmax(150px,1fr) 116px;padding:17px 15px}.board{grid-template-columns:repeat(4,240px)}.page-head .btn{font-size:12px;padding:10px 13px}.login{gap:18px;padding:18px;grid-template-columns:1fr 1fr}.login-art{padding:32px}.login-art h1{font-size:43px}.login-form{padding:18px}.login-form>div{width:100%}.login-form h2{font-size:26px}}
#screen-size-notice{display:none}
@media(max-width:767px){#app{display:none}#screen-size-notice{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:20px;padding:36px;background:var(--bg)}#screen-size-notice img{width:130px}#screen-size-notice h1{font-size:27px;max-width:350px}#screen-size-notice p{color:var(--muted);max-width:330px;font-size:15px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.filter-row{display:flex;align-items:flex-end;gap:12px;margin:0 0 18px}.filter-row label{font-size:10px;color:var(--muted);min-width:145px}.filter-row select{font-size:12px;padding:9px 30px 9px 11px;background:var(--panel);color:var(--ink)}.filter-row .btn{font-size:11px;margin-left:auto;padding:9px}.compact{gap:7px}.compact .ticket-card{padding:12px 16px;border-radius:12px;gap:14px;min-height:79px}.compact .ticket-card h3{font-size:13px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact .ticket-card>div{min-width:0}.compact .ticket-symbol{width:34px;height:34px;border-radius:10px}.compact .caps{font-size:9px;letter-spacing:1px}.compact .ticket-card .address{font-size:11px}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:15px}.pagination .btn{font-size:12px;padding:8px 13px}.pagination button:disabled{cursor:default;opacity:.35}.column{min-height:250px;padding:12px 8px 8px}.column>h3{display:flex;justify-content:space-between;padding:5px 9px 14px;gap:10px}.column>h3 span{border-radius:6px;background:var(--panel);padding:0 6px}.column-scroll{overflow-y:auto;max-height:max(320px,calc(100dvh - 425px));padding:0 4px;scrollbar-width:thin}.column .ticket-title{line-height:1.5;font-size:13px}.column .ticket-card .address{white-space:normal}.column .ticket-card .secondary{display:none}@media(min-width:768px) and (max-width:1100px){.filter-row{gap:8px}.filter-row label{min-width:0;flex:1}.filter-row select{width:100%;font-size:11px;padding-right:19px}.filter-row .btn{font-size:10px}.compact .ticket-card{padding:12px;gap:10px}.pagination{margin-top:15px}}

/* Alto / Optima glass: translucent surfaces, quiet typography, precise density. */
:root{--bg:#f2f0f2;--panel:#ffffffdd;--ink:#302b36;--muted:#817884;--line:#dad3dd;--accent:#ae2346;--soft:#f2e2e9;--input:#eeebf1;--nav:#fbf9fc;--shadow:0 8px 28px #462c4710;--green:#62897b}
body{background:radial-gradient(ellipse at 90% 2%,#e8ceda80,transparent 45%),radial-gradient(ellipse at 10% 90%,#e0deed90,transparent 55%),#f2f0f2;background-attachment:fixed;-webkit-font-smoothing:antialiased;font-family:'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
body.dark{--bg:#1a1720;--panel:#302a36e8;--ink:#f3edf4;--muted:#b2a5b6;--line:#4c404f;--accent:#ed91ab;--soft:#493040;--input:#352c3c;--nav:#26202d;--green:#a4c9b6;background:radial-gradient(ellipse at 90% 0%,#682b4c40,transparent 48%),radial-gradient(ellipse at 10% 90%,#37304d60,transparent 50%),#1a1720}
.shell{grid-template-columns:202px 1fr;padding:12px;gap:10px;min-height:100dvh}.sidebar{top:12px;height:calc(100dvh - 24px);background:linear-gradient(160deg,#ffffffd9,#f8f4fa99);border:1px solid #ffffffd9;border-radius:25px;padding:28px 13px 20px;box-shadow:0 10px 45px #4b284914;backdrop-filter:blur(22px)}body.dark .sidebar{background:linear-gradient(160deg,#3e3045d9,#221c2be0);border-color:#ffffff18}.sidebar .logo{width:131px;height:48px;margin:3px 19px 40px}.nav{gap:8px}.nav button{border-radius:13px;padding:14px;color:var(--muted);font-size:13px;transition:background .22s,box-shadow .22s,transform .22s}.nav button.active{background:linear-gradient(125deg,#b52a50,#951f43);color:white;box-shadow:0 5px 13px #9a294c2b,inset 0 1px 0 #ffffff30}.nav button.active:hover{background:linear-gradient(125deg,#be345b,#a12249)}.nav button:not(.active):not(.invite-tenant):hover{background:#b1254510;transform:translateX(2px)}.sidebar-bottom{padding:0 8px}.workspace-seal{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:1px;margin-bottom:20px;opacity:.8}.workspace-seal small{display:block;font-size:8px;font-weight:400;letter-spacing:.2px;margin-top:3px}.seal-mark{font-size:27px;letter-spacing:-9px;padding-right:7px;color:var(--accent);font-weight:600}.seal-mark span{color:var(--ink)}.profile{padding-top:18px;margin:0;border-color:#b2a5b52b}.profile h3{font-size:11px}.profile .small{font-size:10px}.avatar{background:linear-gradient(135deg,#ebcad7,#f5e6ed);color:#95294b;border:1px solid #fff9;box-shadow:0 4px 8px #8c517112}.workspace{padding:0 29px 28px;min-width:0}.topbar{height:65px;border-bottom:1px solid #9a809514}.topbar .crumb{font-size:10px;letter-spacing:.2px}.top-right{gap:12px}.top-right .small{font-size:10px}.top-right .dot{box-shadow:0 0 0 4px #709f8510}.icon-btn{background:#ffffffa8;border:1px solid #ffffffd0;box-shadow:0 3px 8px #60425d07;transition:transform .2s,box-shadow .2s}.icon-btn:hover{transform:translateY(-2px);box-shadow:0 6px 12px #60425d18}body.dark .icon-btn{background:#ffffff0a;border-color:#ffffff15}.page{padding-top:28px;animation:enter .45s cubic-bezier(.2,.7,.2,1)}h1{font-size:37px;font-weight:550;letter-spacing:-1.7px}.heading-dot{color:var(--accent)}.page-head{margin-bottom:23px}.page-head .caps{font-size:9px;letter-spacing:1.8px}.overview{display:flex;align-items:stretch;margin-bottom:26px;border:1px solid #fff;border-radius:21px;background:linear-gradient(120deg,#ffffffd9,#ffffff70);box-shadow:0 12px 36px #62445f08,inset 0 1px 0 white;backdrop-filter:blur(20px);overflow:hidden}.overview-total{display:flex;align-items:center;gap:17px;padding:18px 28px;min-width:310px;position:relative;flex:1;overflow:hidden}.overview-number{font-size:49px;font-weight:500;letter-spacing:-3px;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}.overview-total strong{display:block;font-size:13px;font-weight:600}.overview-total>div>span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.overview-orbit{position:absolute;right:-32px;bottom:-75px;width:180px;height:180px;border-radius:50%;border:1px solid #b1294b18;transform:rotate(-20deg);pointer-events:none}.overview-orbit i{position:absolute;inset:20px;border:1px solid #b1294b14;border-radius:50%}.overview-orbit i:nth-child(2){inset:40px}.overview-orbit i:nth-child(3){inset:60px;background:#b1294b05}.overview-actions{display:flex;align-items:center;gap:5px;padding:17px 18px}.overview-stat{display:flex;align-items:center;gap:13px;border-left:1px solid #ad94a526;padding:4px 21px;text-align:left;border-radius:0;transition:background .2s,transform .2s}.overview-stat:hover,.overview-stat.selected{background:#b1294b08;transform:translateY(-2px);border-radius:12px}.overview-stat .stat-symbol{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:#e9e3ef70;color:#8b7a93;box-shadow:inset 0 1px 0 #fff7}.overview-stat strong{display:block;font-size:23px;font-weight:550;line-height:1.2;letter-spacing:-.6px}.overview-stat small{display:block;font-size:10px;color:var(--muted);margin-top:4px;white-space:nowrap}.overview-stat.urgent .stat-symbol{background:#f3dce5;color:#ae2346}.overview-stat.urgent strong{color:var(--accent)}body.dark .overview{background:linear-gradient(120deg,#42314799,#2b253199);border-color:#ffffff20;box-shadow:0 12px 35px #0001,inset 0 1px 0 #ffffff10}body.dark .overview-stat .stat-symbol{background:#ffffff09}.toolbar{margin-bottom:15px}.search input{background:#ffffffa3;border:1px solid #ffffffee;border-radius:12px;font-size:12px;padding-top:11px;padding-bottom:11px;box-shadow:0 3px 12px #644b6004}.search input:focus{background:var(--panel);box-shadow:0 0 0 4px #b6294a08}.pills{background:#e5dfe988;border:1px solid #ffffff80;padding:3px;border-radius:11px}.pills button{font-size:11px;padding:8px 12px;transition:background .2s,box-shadow .2s,color .2s}.pills button.active{background:var(--panel);color:var(--ink);box-shadow:0 2px 7px #3e243c13}.filter-row{margin-bottom:15px}.filter-row label{font-size:9px;font-weight:500;color:var(--muted);gap:4px;min-width:160px}.filter-row select{font-size:11px;background:#ffffff60;border-color:#ffffff90;border-radius:9px;padding:8px 26px 8px 11px}.filter-row .btn{color:var(--muted);font-weight:500;font-size:10px}.list-head{display:grid;grid-template-columns:34px minmax(180px,1.6fr) minmax(130px,1fr) 130px 80px;gap:14px;padding:0 18px 10px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px}.compact{gap:0;background:var(--panel);border:1px solid #ffffff;border-radius:17px;overflow:hidden;box-shadow:0 8px 24px #5f3d5810}.compact .ticket-card{border:0;border-bottom:1px solid #b7a9bb29;border-radius:0;background:transparent;padding:13px 17px;min-height:75px;box-shadow:none;grid-template-columns:34px minmax(180px,1.6fr) minmax(130px,1fr) 130px 80px;position:relative;transition:background .2s,box-shadow .2s}.compact .ticket-card:last-child{border-bottom:0}.compact .ticket-card:hover{transform:none;background:#b1254506;box-shadow:inset 3px 0 0 var(--accent)}.ticket-card h3{font-weight:550}.compact .ticket-symbol{background:linear-gradient(145deg,#efebf4,#f7f5fa);color:#91819c;border:1px solid #fff;box-shadow:0 2px 4px #826a8807}.compact .ticket-card:has(.badge.urgent) .ticket-symbol{color:var(--accent);background:#f5e4eb}.compact .ticket-card h3{font-size:12px;letter-spacing:-.1px;margin:3px 0 4px}.compact .caps{font-size:8px;color:#9e8c9f;letter-spacing:.7px;font-weight:500}.compact .ticket-card .address{font-size:10px;color:var(--muted)}.compact .ticket-card .secondary{font-size:10px}.compact .ticket-card .secondary .small{font-size:10px}.compact .badge{background:transparent;padding:0;color:var(--muted);font-size:10px}.compact .badge:before{content:'';width:5px;height:5px;flex:none;border-radius:50%;background:#b4a3bb}.compact .badge.new{color:#6a789d}.compact .badge.new:before{background:#8191bb}.compact .badge.quotes,.compact .badge.approval{color:#94764f}.compact .badge.quotes:before,.compact .badge.approval:before{background:#bc9c6d}.compact .badge.scheduled,.compact .badge.verification{color:#8b6e9c}.compact .badge.scheduled:before,.compact .badge.verification:before{background:#a78ab9}.compact .badge.urgent{color:var(--accent)}.compact .badge.urgent:before{background:var(--accent)}.compact .badge.closed{color:#5a8474}.compact .badge.closed:before{background:#729d8c}.pagination{margin-top:15px}.pagination .btn{border:1px solid #ffffffc0;background:#ffffff70;font-size:10px;border-radius:9px}.pagination .small{font-size:10px}.btn.primary{background:linear-gradient(130deg,#b52a50,#982144);color:#fff;border:1px solid #a32449;box-shadow:inset 0 1px 0 #ffffff2b,0 5px 12px #8b1e4020}.btn.primary:hover{box-shadow:inset 0 1px 0 #ffffff2b,0 7px 18px #8b1e4035;transform:translateY(-2px)}.btn:active,.icon-btn:active{transform:translateY(1px) scale(.98)}.panel{border:1px solid #ffffffc0;border-radius:20px;box-shadow:0 10px 26px #5a3b5608;background:var(--panel)}.board{gap:13px}.column{background:#e7e0eb85;border:1px solid #fff8;border-radius:18px}.column>h3{color:#82728d;font-size:10px}.column .ticket-card{border:1px solid #fff;background:var(--panel);border-radius:14px;box-shadow:0 5px 15px #61406408;transition:transform .2s,box-shadow .2s}.column .ticket-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #61406418}.column .badge{font-size:10px}.column-scroll{scrollbar-color:#c8b8cd transparent}.column-scroll::-webkit-scrollbar{width:4px}.column-scroll::-webkit-scrollbar-thumb{background:#c8b8cd;border-radius:4px}.column-scroll .ticket-card .caps{font-size:8px}.column-scroll .ticket-card .address{font-size:10px}.column-scroll .ticket-title{font-size:12px}dialog{background:var(--panel);backdrop-filter:blur(28px);border:1px solid #ffffffa0;box-shadow:0 30px 100px #3e1d4140;animation:modal-in .25s cubic-bezier(.2,.7,.2,1)}dialog::backdrop{background:#30223955;backdrop-filter:blur(10px)}.loading-state{display:flex;align-items:center;justify-content:center;gap:14px;padding:100px 20px;color:var(--muted);font-size:13px}.loading-ring{display:block;width:23px;height:23px;border:2px solid var(--soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modal-in{from{transform:translateY(12px) scale(.98)}to{transform:none}}body.dark .search input,body.dark .filter-row select{background:#ffffff08;border-color:#ffffff12}body.dark .pills{background:#ffffff08;border-color:#ffffff12}body.dark .compact{border-color:#ffffff18}body.dark .compact .ticket-symbol{background:#ffffff08;border-color:#ffffff0d;color:#c7adcf}body.dark .compact .ticket-card:has(.badge.urgent) .ticket-symbol{background:#5f3047}body.dark .compact .ticket-card:hover{background:#ffffff05}body.dark .compact .caps{color:#ac95ae}body.dark .panel,body.dark .column .ticket-card{border-color:#ffffff15}body.dark .column{background:#ffffff03;border-color:#ffffff12}body.dark .pagination .btn{background:#ffffff08;border-color:#ffffff14}body.dark .overview-stat.urgent .stat-symbol{background:#5b3245;color:#ed91ab}body.dark .avatar{background:#6b4259;color:#ffdbe6;border-color:#ffffff15}body.dark .compact .badge{color:#c7b7ce}body.dark .compact .badge.urgent{color:#ed91ab}body.dark .column>h3{color:#bdacc8}
@media(min-width:1500px){.workspace{padding-left:40px;padding-right:40px}}
@media(min-width:1101px) and (max-width:1280px){.overview-total{min-width:240px;padding-left:22px}.overview-stat{padding:4px 13px;gap:10px}.overview-actions{padding-left:9px;padding-right:9px}.compact .ticket-card,.list-head{grid-template-columns:30px minmax(180px,1.5fr) minmax(95px,.7fr) 115px 50px;gap:12px}.filter-row label{min-width:140px}}
@media(min-width:768px) and (max-width:1100px){.shell{grid-template-columns:68px 1fr;padding:9px;gap:6px}.sidebar{top:9px;height:calc(100dvh - 18px);border-radius:20px;padding:20px 7px}.sidebar .logo{width:46px;height:46px;margin:3px 3px 28px}.nav button{font-size:0;padding:14px 10px;border-radius:12px}.workspace-seal{display:none}.sidebar-bottom{padding:0}.workspace{padding:0 14px 22px}.topbar{height:58px}.page{padding-top:25px}.page-head h1{font-size:32px}.page-head .caps{font-size:8px}.overview{margin-bottom:22px}.overview-total{min-width:210px;padding:20px;gap:12px}.overview-number{font-size:43px}.overview-total strong{font-size:11px}.overview-total>div>span{font-size:8px}.overview-actions{padding:12px 8px;gap:0}.overview-stat{padding:4px 10px;gap:8px}.overview-stat .stat-symbol{display:none}.overview-stat strong{font-size:23px}.overview-stat small{font-size:9px}.overview-orbit{right:-70px;bottom:-100px}.toolbar{gap:12px}.pills button{padding:8px 10px;font-size:10px}.search{min-width:190px}.search input{font-size:11px}.filter-row{gap:9px}.filter-row label{min-width:0}.filter-row select{font-size:10px;padding:8px 20px 8px 9px}.filter-row .btn{font-size:9px;padding:9px 3px}.compact .ticket-card,.list-head{grid-template-columns:30px minmax(180px,1fr) 115px;gap:12px}.compact .ticket-card{padding:12px}.list-head{padding-left:13px;padding-right:13px;font-size:8px}.list-head .secondary{display:none}.compact .ticket-card .address{font-size:10px}.compact .ticket-card h3{font-size:12px}.pagination .btn{font-size:10px}.top-right .small{font-size:9px}.topbar .crumb{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.workspace-seal img{width:48px;height:auto}.workspace-seal{opacity:1}.compact .ticket-card h3{font-size:14px}.compact .ticket-card .address,.compact .ticket-card .secondary,.compact .ticket-card .secondary .small{font-size:12px}.compact .caps{font-size:9px}.compact .badge{font-size:11px}.compact .ticket-card{min-height:82px}.filter-row select,.search input{font-size:12px}.pills button{font-size:12px}.list-head{font-size:10px}.pagination .small,.pagination .btn{font-size:12px}body.dark .workspace-seal img{background:#fffc;border-radius:8px;padding:3px}@media(min-width:768px) and (max-width:1100px){.compact .ticket-card h3{font-size:13px}.compact .ticket-card .address{font-size:11px}.compact .badge{font-size:10px}.filter-row select{font-size:11px}.pills button{font-size:11px}.search input{font-size:12px}.pagination .small,.pagination .btn{font-size:11px}}

@media(prefers-reduced-motion:no-preference){.panel,.overview,.compact,.column,.sidebar{transition:background .28s,border-color .28s,box-shadow .28s}.compact .ticket-card{animation:row-in .25s cubic-bezier(.2,.7,.2,1)}.compact .ticket-card:nth-child(2n){animation-duration:.3s}.compact .ticket-card:nth-child(3n){animation-duration:.35s}@keyframes row-in{from{transform:translateY(5px)}to{transform:translateY(0)}}}#results{scroll-margin-top:24px}

:root{--muted:#746b7b}body.dark{--muted:#bcb0c1}.compact .badge.new{color:#607092}body.dark .compact .badge.new{color:#b5c1df}

.ticket-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.ticket-actions p{margin:8px 0 0}.ticket-actions .badge{display:inline-flex;align-items:center;gap:7px}.ticket-actions .badge .icon{width:14px;height:14px}.ticket-actions .row{gap:10px}@media(max-width:1250px){.ticket-actions{align-items:flex-start;flex-direction:column}}

.sidebar-watermark{flex:1;min-height:100px;display:flex;align-items:center;justify-content:center;pointer-events:none}.sidebar-watermark img{width:185px;max-width:100%;height:auto;opacity:.23;mix-blend-mode:multiply}.sidebar-bottom{margin-top:0}body.dark .sidebar-watermark img{mix-blend-mode:normal;filter:grayscale(1) invert(1);opacity:.2}
.compact .ticket-card,.list-head{grid-template-columns:24px minmax(190px,1fr) 125px 120px 135px;gap:14px}.compact .ticket-card{min-height:0;padding:11px 18px}.compact .ticket-card h3{font-size:13px;margin:0 0 3px}.compact .ticket-card .address{font-size:12px;white-space:normal;line-height:1.35}.compact .caps{font-size:8px;display:block;margin-top:3px}.tenant-phone,.deposit-date{font-size:12px}.compact .ticket-symbol{width:26px;height:26px}.compact .ticket-card.is-unread{background:#b22b5010;box-shadow:inset 3px 0 #ad284c}.compact .ticket-card.is-unread:hover{background:#b22b501b}.unread-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:8px;vertical-align:middle}.column .ticket-card.is-unread{border-color:var(--accent);background:var(--soft)}.column .tenant-phone,.column .deposit-date{display:block;margin-top:6px}.column .tenant-summary{min-width:0}.column .address{white-space:normal}body.dark .compact .ticket-card.is-unread{background:#ed91ab14;box-shadow:inset 3px 0 #ed91ab}
@media(min-width:768px) and (max-width:1100px){.sidebar-watermark img{width:54px}.compact .ticket-card,.list-head{grid-template-columns:18px minmax(150px,1fr) 95px 90px 100px;gap:8px}.compact .ticket-card{padding:10px}.tenant-phone,.deposit-date{font-size:10px}.compact .ticket-card .address{font-size:11px}.compact .ticket-symbol{width:20px;height:20px}.compact .ticket-card h3{font-size:12px}}

.compact .ticket-card{padding-top:7px;padding-bottom:7px}.compact .ticket-card .badge+.badge{display:block;margin-top:3px}

.favorite-star{color:#b98335;margin-left:7px}.ticket-menu{display:grid;gap:12px}.ticket-menu>.btn{justify-content:flex-start}.ticket-menu form{border-top:1px solid var(--line);padding-top:18px}#favorites-filter[aria-pressed="true"]{background:var(--soft);color:var(--accent)}

dialog.large-viewer{width:94vw;max-width:1600px;height:92dvh;max-height:96dvh;padding:20px;overflow:hidden}dialog.large-viewer[open]{display:flex;flex-direction:column;gap:14px}.viewer-toolbar{display:flex;align-items:center;gap:10px}.viewer-toolbar output{min-width:55px;text-align:center}.viewer-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#13131b;border-radius:14px;overscroll-behavior:contain}.viewer-stage img{width:100%;height:100%;object-fit:contain;max-height:none;max-width:none;user-select:none;transform-origin:center}.viewer-stage video{width:100%;height:100%;max-height:none;object-fit:contain}.large-viewer:fullscreen{width:100vw;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;background:var(--bg)}

.cursor-menu{position:fixed;z-index:1000;width:265px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:10px;border:1px solid var(--line);border-radius:15px;background:var(--panel);backdrop-filter:blur(24px);box-shadow:0 15px 50px #24142630;font-size:12px;animation:modal-in .12s ease-out}.cursor-menu-title{padding:5px 8px 10px;color:var(--muted);font-size:10px;letter-spacing:1px}.cursor-menu .ticket-menu{gap:4px}.cursor-menu .btn{padding:9px 10px;font-size:12px;border-radius:8px}.cursor-menu .ticket-menu>.btn{background:transparent;border-color:transparent}.cursor-menu .ticket-menu>.btn:hover{background:var(--soft)}.cursor-menu .ticket-menu form{margin-top:6px;padding:12px 4px 4px;gap:10px}.cursor-menu select{padding:8px;font-size:12px}.cursor-menu .icon{width:16px;height:16px}

.top-followup{display:flex;align-items:flex-end;gap:16px;margin-bottom:16px;padding:18px 22px}.top-followup label{min-width:190px}.top-followup>span{align-self:center}.compact .ticket-card.is-urgent,.column .ticket-card.is-urgent{box-shadow:inset 4px 0 #d52a45}.badge.urgent,.compact .badge.urgent{display:inline-flex!important;align-items:center;gap:5px;background:#c71f3b;color:#fff!important;border:1px solid #c71f3b;padding:4px 8px;border-radius:7px;font-size:10px;font-weight:750;letter-spacing:.6px}.badge.urgent:before{display:none!important}.badge.urgent .icon{width:13px;height:13px}.compact .ticket-card.is-urgent.is-unread{box-shadow:inset 4px 0 #d52a45;background:#b22b5010}body.dark .compact .ticket-card.is-urgent.is-unread{background:#ed91ab14}body.dark .badge.urgent{background:#c71f3b;color:white}.top-followup select{min-height:43px}@media(max-width:1100px){.top-followup{flex-wrap:wrap}.top-followup label{min-width:150px}.top-followup>span{display:none}}

.sidebar>.logo{width:180px;max-width:100%;height:70px;object-position:center;margin-left:auto;margin-right:auto}@media(min-width:768px) and (max-width:1100px){.sidebar>.logo{width:54px;height:54px;margin-left:0;margin-right:0}}

/* Urgency and personal favorites are independent, cumulative signals. */
.compact .ticket-card.is-urgent{background:#fff0f2;box-shadow:inset 6px 0 #d51f40}.compact .ticket-card.is-urgent:hover{background:#ffe4e9}.compact .ticket-card.is-urgent.is-unread{background:#ffe3e9;box-shadow:inset 6px 0 #d51f40}.compact .is-urgent .ticket-symbol{color:#c71939;background:#ffd8e1;border-color:#f4aebe}.badge.urgent,.compact .badge.urgent{font-size:11px;padding:6px 10px;letter-spacing:.8px;box-shadow:0 3px 10px #c71f3b25}.badge.urgent .icon{width:15px;height:15px}
.favorite-star{display:inline-flex;align-items:center;vertical-align:middle;margin-left:9px;padding:3px 7px;border-radius:6px;background:#fff0bd;border:1px solid #e8c96c;color:#785408;font-size:10px;font-weight:750;letter-spacing:.2px;white-space:nowrap}.compact .ticket-card.is-favorite:not(.is-urgent):not(.is-unread){background:#fffcf1}.column .ticket-card.is-urgent{border-color:#df4961;background:#fff0f2;box-shadow:inset 4px 0 #d51f40}.column .favorite-star{margin:4px 0 0 6px}
body.dark .compact .ticket-card.is-urgent,body.dark .column .ticket-card.is-urgent{background:#492733;box-shadow:inset 6px 0 #ff6681}body.dark .compact .ticket-card.is-urgent:hover{background:#55303c}body.dark .compact .ticket-card.is-urgent.is-unread{background:#593040;box-shadow:inset 6px 0 #ff6681}body.dark .compact .is-urgent .ticket-symbol{color:#ffb2c2;background:#6e3044;border-color:#9c4860}body.dark .favorite-star{background:#58451c;color:#ffe39a;border-color:#8e7336}body.dark .compact .ticket-card.is-favorite:not(.is-urgent):not(.is-unread){background:#393126}

/* Media: silent moving previews and a real audio spectrum. */
.media-tile{isolation:isolate;overflow:hidden}.media-tile video{width:100%;height:100%;object-fit:cover;transition:transform .6s}.media-tile:hover video{transform:scale(1.04)}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#d22d53,#a91c40);color:white;box-shadow:0 6px 28px #0005,inset 0 1px #ffffff50;transition:transform .2s,box-shadow .2s}.video-play .icon{width:25px;height:25px;fill:currentColor;stroke:none}.media-tile:hover .video-play{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 8px 30px #a91c4066}.media-tile:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.vocal-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(140deg,#dbbccc55,#b5a4cb33)}.vocal-preview>.icon{width:30px;height:30px;color:var(--accent)}.mini-wave{display:flex;gap:3px;align-items:center}.mini-wave i{width:3px;height:var(--level);border-radius:4px;background:var(--accent);opacity:.55}.vocal-play{position:absolute;right:12px;top:12px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:white;background:var(--accent)}.vocal-play .icon{width:17px;fill:currentColor;stroke:none}
.vocal-player{padding:24px 10px 14px;text-align:center}.vocal-orb{width:82px;height:82px;display:grid;place-items:center;margin:0 auto 24px;border-radius:50%;background:linear-gradient(140deg,#b42a5040,#bca5d540);box-shadow:0 0 0 12px #b42a5008,inset 0 1px #ffffff88;color:var(--accent);transition:box-shadow .3s}.vocal-orb .icon{width:34px;height:34px}.is-playing .vocal-orb{box-shadow:0 0 0 12px #b42a5010,0 0 40px #b42a5020,inset 0 1px #ffffff88}.voice-equalizer{height:90px;display:flex;align-items:center;justify-content:center;gap:4px;margin:18px 0 28px}.voice-equalizer i{width:5px;height:76px;border-radius:5px;background:linear-gradient(#cf638b,#ad284c 55%,#9e83bb);transform:scaleY(.08);transition:transform .06s linear}.vocal-player audio{width:100%}@media(prefers-reduced-motion:reduce){.media-tile video,.video-play,.voice-equalizer i{transition:none}}

.compact .ticket-card,.list-head{grid-template-columns:24px minmax(230px,1.7fr) minmax(160px,1fr) 165px 135px 112px;gap:16px}.compact .ticket-card{padding:13px 18px}.compact .ticket-card h3{font-size:16px;line-height:1.4}.compact .ticket-card .address{font-size:14px;line-height:1.4}.tenant-contact,.ticket-dates{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:11px}.tenant-phone{font-size:13px}.tenant-email{overflow-wrap:anywhere;color:var(--muted);font-size:12px}.ticket-reference{font-size:10px;font-weight:600;letter-spacing:.3px;text-align:right;color:var(--muted)}.column .ticket-reference{display:block;margin-top:10px}.column .tenant-contact,.column .ticket-dates{margin-top:8px}.list-head>span:last-child{text-align:right}
@media(max-width:1250px){.compact .ticket-card,.list-head{grid-template-columns:18px minmax(180px,1.4fr) minmax(135px,1fr) 132px 104px 94px;gap:10px}.compact .ticket-card h3{font-size:15px}.compact .ticket-card .address{font-size:13px}.ticket-dates{font-size:10px}.tenant-email{font-size:11px}}
@media(min-width:768px) and (max-width:1000px){.compact .ticket-card{grid-template-columns:20px minmax(160px,1fr) minmax(140px,1fr) 104px;gap:8px 12px}.list-head{display:none}.compact .ticket-card .ticket-symbol{grid-column:1;grid-row:1/3}.compact .tenant-summary{grid-column:2;grid-row:1/3}.compact .tenant-contact{grid-column:3;grid-row:1}.compact .ticket-dates{grid-column:3;grid-row:2}.compact .ticket-card>div:last-of-type{grid-column:4;grid-row:1}.compact .ticket-reference{grid-column:4;grid-row:2;text-align:left}.compact .ticket-card h3{font-size:15px}}

.compact .ticket-card .tenant-summary h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compact .tenant-summary .badge.urgent{margin:0;padding:4px 7px;font-size:9px;letter-spacing:.5px}.compact .tenant-summary .badge.urgent .icon{width:12px;height:12px}.ticket-symbol.is-starred,body.dark .compact .ticket-symbol.is-starred{color:#bd8520;background:linear-gradient(145deg,#fff1bd,#f5d16c);border:1px solid #d7a33466;box-shadow:0 3px 10px #c89a3b20;font-size:21px}.compact .ticket-stage{align-self:center}
.compact .ticket-card.is-favorite .ticket-symbol.is-starred,body.dark .compact .ticket-card.is-favorite .ticket-symbol.is-starred{color:#916413;background:linear-gradient(145deg,#fff3c8,#efd077);border-color:#d3ab5266;box-shadow:0 3px 10px #c89a3b20}

/* One meaningful margin marker: saved tickets only. */
.ticket-marker{display:flex;align-items:center;justify-content:center;min-width:0;width:24px;color:#a47535}.ticket-marker .icon{width:18px;height:23px;fill:#b98a4833;stroke:currentColor;stroke-width:1.8;filter:none}.column .ticket-marker:empty{display:none}.column .ticket-marker{margin-bottom:6px}body.dark .ticket-marker{color:#d6b37c}body.dark .ticket-marker .icon{fill:#d6b37c33}.compact .ticket-card.is-favorite:not(.is-urgent):not(.is-unread){background:transparent}body.dark .compact .ticket-card.is-favorite:not(.is-urgent):not(.is-unread){background:transparent}
@media(min-width:768px) and (max-width:1000px){.compact .ticket-marker{grid-column:1;grid-row:1/3;width:20px}}
.media-library{padding:26px;min-height:0!important;overflow:hidden;background:linear-gradient(145deg,var(--panel),#f0eaf333)}.media-library h2{margin:0}.media-count{font-size:11px;color:var(--muted)}.gallery-strip{display:flex;gap:16px;overflow-x:auto;padding:22px 2px 18px;scroll-snap-type:x mandatory}.gallery-strip:empty{display:none}.gallery-card{position:relative;flex:0 0 clamp(180px,22vw,280px);height:190px;border:1px solid #ffffff80;border-radius:22px;padding:0;overflow:hidden;background:#282330;box-shadow:0 8px 22px #30243c14;scroll-snap-align:start;transition:transform .25s,box-shadow .25s}.gallery-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px #30243c25}.gallery-card img,.gallery-card video{width:100%;height:100%;object-fit:cover}.gallery-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:24px 16px 14px;color:white;font-size:12px;font-weight:600;background:linear-gradient(transparent,#1a1528aa)}.gallery-card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.inline-vocal{display:flex;align-items:center;gap:20px;padding:18px 22px;text-align:left;margin-top:8px;border:1px solid #ab8caa25;border-radius:20px;background:linear-gradient(110deg,#b3264a09,#ab92c415)}.voice-toggle{flex:none;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:var(--accent);color:white;box-shadow:0 5px 18px #a9244925}.voice-toggle .icon{fill:currentColor;stroke:none;width:23px}.voice-body{flex:1;min-width:0}.voice-body strong{font-size:12px}.voice-time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.inline-vocal .voice-equalizer{height:34px;margin:5px 0 2px;justify-content:stretch;gap:4px}.inline-vocal .voice-equalizer i{height:32px;flex:1;max-width:8px}.voice-seek{display:block;width:100%;padding:0;height:4px;accent-color:var(--accent);border:0;cursor:pointer}.inline-vocal audio{display:none}.owner-tools{display:flex;align-items:end;gap:12px;margin:18px 0}.owner-tools label{flex:1}.owner-results{max-height:180px;overflow:auto}.owner-result{display:flex;flex-direction:column;gap:5px;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line);padding:12px;background:var(--soft);color:var(--ink)}.owner-result span{font-size:12px;color:var(--muted)}.owner-person{border:1px solid #a78aa830;border-radius:16px;padding:14px;margin:12px 0;min-width:0}.owner-person legend{font-size:12px;font-weight:600;padding:0 6px}.owner-name{display:grid;grid-template-columns:85px 1fr 1fr;gap:12px}.owner-contact{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.owner-person input,.owner-person select{min-width:0;width:100%}.csv-picker{margin:22px 0}.csv-preview{max-height:250px;overflow:auto;margin:15px 0}.csv-preview>div{display:flex;flex-direction:column;gap:4px;padding:10px;border-bottom:1px solid #a78aa830;font-size:12px}.csv-preview span{color:var(--muted)}.viewer-toolbar{flex-wrap:wrap;gap:10px}#media-position{font-size:12px;color:var(--muted);min-width:40px;text-align:center}body.dark .media-library{background:linear-gradient(145deg,var(--panel),#3c2e4522)}@media(prefers-reduced-motion:reduce){.gallery-card{transition:none}}
#second-owner[hidden]{display:none}.owner-person label{font-size:12px}.owner-tools .btn{flex:none}.media-library .gallery-strip:empty{padding:0}.inline-vocal .voice-equalizer{overflow:hidden}

.viewer-stage:fullscreen,.viewer-stage video:fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0;background:#000;object-fit:contain}
/* Fixed dashboard controls; only ticket rows scroll. */
.topbar{justify-content:flex-end;height:58px;border:0}
.tickets-shell{height:100dvh;min-height:0;overflow:hidden}
.tickets-shell .workspace{height:100%;min-height:0;display:flex;flex-direction:column;padding-bottom:12px}
.tickets-shell .topbar{flex:0 0 54px}
.tickets-shell .page{padding-top:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;animation:none}
.tickets-shell .overview{flex:none;margin:0 0 18px;padding:18px 24px;min-height:90px}
.tickets-shell .overview-number{font-size:42px}
.tickets-shell .toolbar{flex:none;margin:0 0 12px}
.tickets-shell .filter-row{flex:none;margin:0 0 8px;align-items:end}
.tickets-shell .filter-row .favorites-toggle{align-self:end;height:42px}
.tickets-shell #results{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.tickets-shell .list-head{position:sticky;top:0;z-index:2;background:var(--bg);padding-top:10px;padding-bottom:10px}
.tickets-shell #pagination{flex:none}
.tickets-shell .pagination{margin-top:8px;padding-top:0}
.tickets-shell #results[data-density=compact] .ticket-card{padding-top:10px;padding-bottom:10px;min-height:68px}
.tickets-shell #results[data-density=comfort] .ticket-card{padding-top:20px;padding-bottom:20px;min-height:98px}
.ticket-marker .icon,.favorites-toggle .icon,.cursor-menu [data-action=favorite] .icon,.cursor-menu [data-action=unfavorite] .icon{color:#d49a13;fill:#f8ca4d;stroke:#d49a13}
.ticket-marker{background:transparent!important;box-shadow:none!important;border:0!important}
#densities button.active{background:var(--panel);box-shadow:0 2px 8px #0000000c}
@media(max-width:1100px){.tickets-shell .overview{padding:12px 16px;margin-bottom:12px}.tickets-shell .overview-total{gap:10px}.tickets-shell .overview-number{font-size:34px}.tickets-shell .overview-stat{padding:8px 12px}.tickets-shell .filter-row{gap:10px}.tickets-shell .filter-row label{min-width:120px}}
.tickets-shell .filter-row #favorites-filter{margin-left:0;margin-right:0}.tickets-shell .filter-row #clear-filters{margin-left:auto}

.favorites-toggle[aria-pressed="false"] .icon{color:var(--muted);fill:none;stroke:currentColor}
.favorites-toggle[aria-pressed="true"] .icon{color:#d49a13;fill:#f8ca4d;stroke:#d49a13}
/* Favorites keep their warm tint, including unread and urgent tickets. */
#results .ticket-card.is-favorite{background:#fff4cc}
#results .ticket-card.is-favorite:hover{background:#ffedb0}
body.dark #results .ticket-card.is-favorite{background:#443a23}
body.dark #results .ticket-card.is-favorite:hover{background:#51452a}

.ticket-owner{font-size:12px;line-height:1.4;margin-top:3px;color:var(--ink);overflow-wrap:anywhere}.ticket-owner>span{color:var(--muted);font-weight:400}
.sidebar-bottom{position:relative}.profile-trigger{width:100%;text-align:left;background:transparent;padding-left:0;padding-right:0;cursor:pointer}.profile-role{display:block}.profile-chevron{margin-left:auto;color:var(--muted)}.profile-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px #0002;z-index:10}.profile-menu[hidden],#provider-other[hidden]{display:none}.profile-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;border-radius:10px}.profile-menu button:hover,.profile-menu button.active{background:var(--soft);color:var(--accent)}
/* Compact inline voice player, sized as a media card rather than a full-width panel. */
.media-library .inline-vocal{width:min(100%,400px);gap:12px;padding:12px 14px;margin-top:6px;border-radius:16px;min-height:0}
.inline-vocal .voice-toggle{width:36px;height:36px;box-shadow:0 3px 10px #a9244918}
.inline-vocal .voice-toggle .icon{width:18px;height:18px}
.inline-vocal .voice-body>.spread{gap:12px}
.inline-vocal .voice-time{white-space:nowrap;font-size:10px}
.inline-vocal .voice-equalizer{height:22px;margin:4px 0;gap:3px}
.inline-vocal .voice-equalizer i{height:22px;max-width:5px}
.inline-vocal .voice-seek{height:3px;margin:0}
.media-library .gallery-strip{padding-top:16px;padding-bottom:12px}
/* Media collection: image-led cards and a tactile telephone-inspired voice note. */
.media-library{border:1px solid #ffffff70;box-shadow:0 12px 42px #34203308}
.media-library .gallery-strip{gap:14px;padding-bottom:18px}
.media-library .gallery-card{border-radius:20px;height:180px;flex-basis:250px;border:1px solid #ffffff90;box-shadow:0 8px 20px #23132917}
.media-library .gallery-card img,.media-library .gallery-card video{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.media-library .gallery-card:hover img,.media-library .gallery-card:hover video{transform:scale(1.045)}
.media-library .gallery-caption{padding:28px 14px 12px;font-size:12px;letter-spacing:.2px}
.media-library .gallery-caption>span{font-variant-numeric:tabular-nums;opacity:.65;font-size:10px}
.media-library .video-play{border:1px solid #ffffff50;box-shadow:0 6px 24px #26081740;backdrop-filter:blur(12px)}
.media-library .phone-vocal{position:relative;isolation:isolate;overflow:hidden;width:min(100%,440px);padding:17px 20px;gap:20px;border-radius:23px;background:linear-gradient(125deg,#30212e,#482537 60%,#69243d);border:1px solid #ffffff30;box-shadow:0 12px 28px #54182c20,inset 0 1px #ffffff22;color:#fff}
.phone-vocal:before{content:'';position:absolute;z-index:-1;width:230px;height:230px;right:-110px;top:-130px;background:radial-gradient(circle,#e599b14d,transparent 65%);pointer-events:none}
.voice-handset{position:relative;flex:none;width:57px;height:101px;border:2px solid #eedde37a;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#ffffff19,#ffffff04);box-shadow:4px 7px 15px #100a1929,inset 0 0 0 3px #ffffff08;transform:rotate(-9deg);transition:transform .4s,box-shadow .4s}
.phone-speaker{position:absolute;top:7px;width:18px;height:3px;border-radius:3px;background:#efcfda99}.phone-home{position:absolute;bottom:6px;width:18px;height:2px;border-radius:2px;background:#efcfda80}
.phone-call{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f8b8ce19;color:#ffd6e3;border:1px solid #ffd6e326}.phone-call .icon{width:18px;height:18px}
.phone-vocal .voice-body strong{display:block;font-size:15px;font-weight:600;letter-spacing:-.2px}.voice-eyebrow{display:block;color:#dfbdca;font-size:8px;font-weight:600;letter-spacing:1.6px;margin-bottom:3px}
.voice-status{width:6px;height:6px;border-radius:50%;background:#bd889b;box-shadow:0 0 0 4px #ffffff06}
.media-library .phone-vocal .voice-equalizer{height:28px;gap:3px;margin:8px 0}
.phone-vocal .voice-equalizer i{height:28px;max-width:none;background:linear-gradient(#ffcfdf,#d76d96);transform:scaleY(var(--idle,.2));opacity:.75}
.voice-controls{display:flex;align-items:center;gap:11px}.phone-vocal .voice-controls .voice-toggle{width:30px;height:30px;background:#fff0f5;color:#812445;box-shadow:0 3px 12px #17081230;transition:transform .2s}.phone-vocal .voice-toggle:hover{transform:scale(1.08)}
.phone-vocal .voice-controls .voice-seek{flex:1;min-width:0;width:auto;accent-color:#f5abc5;background:transparent}.phone-vocal .voice-time{color:#e9d1db;font-size:10px;min-width:64px;text-align:right}
.phone-vocal.is-playing .voice-handset{transform:rotate(0deg);box-shadow:0 0 24px #f5abc52b,inset 0 0 0 3px #ffffff08}.phone-vocal.is-playing .voice-status{background:#ffd7e5;box-shadow:0 0 12px #ffc0d6}.phone-vocal.is-playing .voice-equalizer i{opacity:1}
body.dark .media-library .phone-vocal{border-color:#e6a4c02e;box-shadow:0 10px 30px #0003}
@media(prefers-reduced-motion:reduce){.voice-handset,.phone-vocal .voice-toggle,.media-library .gallery-card img,.media-library .gallery-card video{transition:none}}
/* A stationary landscape smartphone; its screen is the playback surface. */
.media-library .phone-vocal{width:min(100%,455px);padding:7px 13px 7px 30px;gap:0;min-height:156px;border:2px solid #8a7b86;border-radius:28px;background:linear-gradient(135deg,#453b45,#17141c 45%,#50414c);box-shadow:0 12px 24px #24132628,inset 0 0 0 2px #ffffff17;overflow:visible}
.phone-vocal:before{display:none}.phone-vocal:after{content:'';position:absolute;left:68px;top:-4px;width:38px;height:3px;border-radius:3px;background:#8a7b86}
.phone-hardware{position:absolute;left:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:9px}.phone-hardware span{width:4px;height:27px;border-radius:4px;background:#09080b;box-shadow:inset 1px 0 #ffffff20}.phone-hardware i{width:5px;height:5px;border-radius:50%;background:#171826;box-shadow:inset 0 0 0 1px #706377}
.phone-vocal .phone-screen{position:relative;padding:15px 18px 20px;border-radius:17px;background:radial-gradient(ellipse at 100% 0,#a050704d,transparent 65%),linear-gradient(120deg,#30212e,#61243c);border:1px solid #ffffff16;cursor:pointer;min-width:0;transition:box-shadow .25s}
.phone-screen:after{content:'';position:absolute;width:65px;height:3px;background:#f1cbd778;border-radius:3px;bottom:6px;left:50%;transform:translateX(-50%)}
.phone-screen:focus-visible{outline:2px solid #ffc8dc;outline-offset:3px}.phone-vocal.is-playing .phone-screen{box-shadow:inset 0 0 28px #ea89ad12}.phone-vocal .voice-eyebrow{font-size:8px}.phone-vocal .voice-controls{gap:10px}.phone-vocal .voice-controls .voice-toggle{width:28px;height:28px}.phone-vocal .voice-body strong{font-size:14px}
@media(prefers-reduced-motion:reduce){.phone-vocal .phone-screen{transition:none}}
/* Portrait phone anchored to the right of the visual gallery. */
.media-library.has-voice{display:grid;grid-template-columns:minmax(0,1fr) 174px;gap:18px 24px;align-items:start}
.media-library.has-voice>.spread{grid-column:1/-1}
.media-library.has-voice .gallery-strip{grid-column:1;grid-row:2;min-width:0;width:100%;margin:0;padding-top:0;flex-wrap:wrap;overflow:visible}
.media-library.has-voice .gallery-card{flex:0 1 250px;max-width:100%}
.media-library.has-voice .phone-vocal{grid-column:2;grid-row:2;width:174px;height:290px;min-height:290px;margin:0;display:flex;padding:23px 6px 7px;border-radius:27px;align-self:start}
.media-library.has-voice .phone-vocal:after{width:3px;height:31px;left:-4px;top:54px}
.media-library.has-voice .phone-hardware{left:50%;top:11px;transform:translateX(-50%);flex-direction:row;gap:7px}
.media-library.has-voice .phone-hardware span{width:25px;height:4px}.media-library.has-voice .phone-hardware i{width:4px;height:4px}
.media-library.has-voice .phone-screen{height:100%;width:100%;padding:27px 12px 23px;border-radius:10px 10px 20px 20px;display:flex;flex-direction:column;justify-content:center}
.media-library.has-voice .phone-screen>.spread{justify-content:center;text-align:center;position:relative}
.media-library.has-voice .voice-status{position:absolute;top:-15px;right:2px}
.media-library.has-voice .voice-eyebrow{font-size:7px;letter-spacing:1.1px;line-height:1.6;margin-bottom:6px}
.media-library.has-voice .voice-body strong{font-size:14px}
.media-library.has-voice .phone-vocal .voice-equalizer{height:42px;gap:2px;margin:18px 0}
.media-library.has-voice .voice-equalizer i{height:40px;min-width:1px}
.media-library.has-voice .voice-controls{display:grid;grid-template-columns:1fr;justify-items:center;gap:12px}
.media-library.has-voice .voice-controls .voice-toggle{width:36px;height:36px;grid-row:1}
.media-library.has-voice .voice-controls .voice-seek{width:100%;grid-row:2}
.media-library.has-voice .voice-time{text-align:center;grid-row:3;font-size:9px}
@media(max-width:1100px){.media-library.has-voice{gap:14px;grid-template-columns:minmax(0,1fr) 160px}.media-library.has-voice .phone-vocal{width:160px}.media-library.has-voice .gallery-card{height:160px;flex-basis:220px}}
/* Compact media collection: balanced thumbnails and portrait voice player. */
.media-library{padding:20px}
.media-library.has-voice{grid-template-columns:minmax(0,1fr) 132px;gap:14px 18px}
.media-library .gallery-strip{gap:12px}
.media-library .gallery-card,.media-library.has-voice .gallery-card{flex:0 1 190px;height:138px;border-radius:16px}
.media-library .gallery-caption{padding:20px 12px 10px;font-size:11px}
.media-library .video-play{width:48px;height:34px;border-radius:11px}
.media-library .video-play .icon{width:17px;height:17px}
.media-library.has-voice .phone-vocal{width:132px;height:226px;min-height:226px;border-radius:23px;padding:19px 5px 6px}
.media-library.has-voice .phone-screen{padding:14px 9px 17px;border-radius:9px 9px 16px 16px}
.media-library.has-voice .voice-body strong{font-size:12px}
.media-library.has-voice .voice-eyebrow{font-size:6px;letter-spacing:.7px;margin-bottom:4px}
.media-library.has-voice .phone-vocal .voice-equalizer{height:29px;margin:12px 0;gap:1px}
.media-library.has-voice .voice-equalizer i{height:28px}
.media-library.has-voice .voice-controls{gap:9px}
.media-library.has-voice .voice-controls .voice-toggle{width:29px;height:29px}
.media-library.has-voice .voice-time{font-size:8px}
.media-library.has-voice .phone-hardware{top:9px}
.media-library.has-voice .phone-vocal:after{top:45px;height:25px}
.media-library.has-voice{grid-template-columns:minmax(0,1fr) 184px}
.media-library.has-voice .phone-vocal{width:184px;height:330px;min-height:330px;border-radius:28px;padding:24px 7px 8px}
.media-library.has-voice .phone-screen{padding:20px 12px;border-radius:11px 11px 20px 20px}
.media-library.has-voice .voice-eyebrow{font-size:10px;letter-spacing:.3px;line-height:1.4;margin-bottom:8px;overflow-wrap:anywhere;color:#fff0f5;font-weight:650}
.media-library.has-voice .voice-body strong{font-size:14px}
.voice-date{display:block;margin-top:6px;font-size:9px;color:#dfbdca;font-variant-numeric:tabular-nums}
.media-library.has-voice .phone-vocal .voice-equalizer{height:35px;margin:17px 0}
.media-library.has-voice .voice-equalizer i{height:34px}
.media-library.has-voice .voice-controls .voice-toggle{width:34px;height:34px}
.media-library.has-voice .voice-time{font-size:9px}
.voice-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.voice-navigation button{width:28px;height:28px;border-radius:50%;background:#ffffff10;color:#ffe5ee;font-size:23px;line-height:1;display:grid;place-items:center}
.voice-navigation button:disabled{opacity:.25;cursor:default}.voice-position{font-size:9px;color:#dfbdca;font-variant-numeric:tabular-nums}

/* Unseen attachments retain their cue until intentionally opened or played. */
.media-library .gallery-card.media-unread{box-shadow:0 0 0 2px #be2551,0 8px 24px #a5224422}
.media-unread-label{position:absolute;top:10px;left:10px;padding:5px 9px;border-radius:20px;background:#aa2149;color:white;font-size:10px;font-weight:700;box-shadow:0 2px 8px #0002;z-index:2}

/* Urgent tickets use an outline; favorites retain their independent yellow tint. */
#results .ticket-card.is-urgent{box-shadow:inset 0 0 0 1px #d52a4566,inset 3px 0 #d52a45}
#results .ticket-card.is-urgent:not(.is-favorite){background:transparent}
#results .ticket-card.is-urgent:not(.is-favorite):hover{background:#25293604}
body.dark #results .ticket-card.is-urgent{box-shadow:inset 0 0 0 1px #ff668166,inset 3px 0 #ff6681}
body.dark #results .ticket-card.is-urgent:not(.is-favorite){background:transparent}
body.dark #results .ticket-card.is-urgent:not(.is-favorite):hover{background:#ffffff05}

.tickets-shell .filter-row .urgent-toggle{align-self:end;height:42px}
.urgent-toggle[aria-pressed="true"]{color:#b51e40;border-color:#c52b4f;background:#c52b4f0d;box-shadow:inset 0 0 0 1px #c52b4f30}
body.dark .urgent-toggle[aria-pressed="true"]{color:#ff9bb2;border-color:#ed7592;background:#ed759210}

/* Keep filters together and leave room for the focus outline inside the fixed header. */
.tickets-shell .filter-row{padding:5px 5px 6px;gap:10px}
.tickets-shell .filter-row label{flex:0 0 auto;min-width:160px}
.tickets-shell .filter-row #urgent-filter,.tickets-shell .filter-row #favorites-filter{margin:0}
.tickets-shell .filter-row select{min-height:42px}
@media(max-width:1100px){.tickets-shell .filter-row{gap:8px}.tickets-shell .filter-row label{min-width:140px}}

.ticket-media-indicators{display:flex;justify-content:flex-end;gap:7px;margin-top:6px;min-height:0}
.ticket-media-indicators:empty{display:none}
.ticket-media-indicator{display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}
.ticket-media-indicator .icon{width:15px;height:15px;stroke-width:1.6}
.ticket-media-indicator:hover{color:var(--accent)}

/* Shared column sizing keeps references, people and progress aligned. */
#results .compact,#results .list-head{min-width:1020px}
#results .compact .ticket-card,#results .list-head{grid-template-columns:132px minmax(180px,1.8fr) minmax(140px,1.15fr) minmax(115px,.9fr) 137px 110px;gap:12px;padding-left:18px;padding-right:18px}
#results .compact .ticket-card>*,#results .list-head>span{grid-column:auto;grid-row:auto;min-width:0}
#results .compact .ticket-reference{text-align:left;font-size:10px;overflow-wrap:anywhere}
.reference-label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.reference-label .ticket-marker{width:15px}.reference-label .ticket-marker .icon{width:14px;height:14px}
#results .ticket-media-indicators{justify-content:flex-start}
#results .tenant-email,#results .ticket-landlord,#results .tenant-summary h3,#results .address{overflow-wrap:anywhere;white-space:normal}
#results .ticket-landlord{font-size:12px;font-weight:500;line-height:1.5}
#results .ticket-stage{text-align:right}
#results .ticket-stage .badge{white-space:normal;text-align:left}
#results .list-head>span:last-child{text-align:right}

/* Counts remain compact; every progress label shares the same left edge. */
.ticket-media-indicator{gap:3px}.media-type-count{font-size:10px;line-height:1;font-variant-numeric:tabular-nums;font-weight:600}
#results .ticket-stage{text-align:left}
#results .ticket-stage .badge{display:inline-flex;justify-content:flex-start;align-items:center;max-width:100%;text-align:left}
#results .ticket-stage .badge:before{flex-shrink:0}
#results .list-head>span:last-child{text-align:left}

.playback-speeds{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--input)}
.playback-speeds button{padding:5px 10px;border-radius:7px;font-size:11px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.playback-speeds button[aria-pressed="true"]{background:var(--panel);color:var(--accent);box-shadow:0 2px 6px #0001;font-weight:700}
.phone-screen .playback-speeds{display:flex;justify-content:center;margin-top:12px;background:#ffffff0b;border-color:#ffffff20}
.phone-screen .playback-speeds button{color:#edd5df;padding:5px 8px;font-size:10px}
.phone-screen .playback-speeds button[aria-pressed="true"]{background:#ffe5ee;color:#842044}
.media-library.has-voice .phone-vocal{height:365px;min-height:365px}
.phone-screen .voice-navigation{margin-top:10px}

.ticket-heading{margin-bottom:25px}.ticket-heading-nav{margin-bottom:20px}.ticket-heading-nav #back{padding-left:0}
.ticket-heading-main{display:flex;align-items:center;justify-content:space-between;gap:20px}
.ticket-timestamps{margin-top:10px}.header-priority{width:150px;flex:none;color:var(--muted);font-size:11px}
.ticket-owner-heading{display:flex;align-items:center;gap:12px;margin-top:22px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.owner-heading-icon{color:var(--muted)}.owner-heading-icon .icon{width:26px;height:26px}
.owner-heading-identity{display:grid;gap:4px;min-width:0}.owner-heading-identity strong{font-size:19px;font-weight:600;overflow-wrap:anywhere}
.ticket-save-state{margin-left:auto}.owner-details{display:grid;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.owner-details p{font-size:12px;color:var(--muted);margin-top:4px}
.media-heading{gap:15px;flex-wrap:wrap}.media-heading .btn{font-size:11px;padding:9px 12px}
@media(max-width:1100px){.ticket-heading-main h1{font-size:29px}.owner-heading-identity strong{font-size:17px}.ticket-owner-heading{flex-wrap:wrap}.ticket-save-state{width:100%;margin-left:38px}}

.danger{color:#bd2345}.trash-media-list{display:grid;gap:16px;max-height:65vh;overflow:auto}.trash-media-item{display:grid;grid-template-columns:minmax(120px,1fr) 1fr auto;gap:16px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.trash-media-item img,.trash-media-item video{width:160px;height:100px;object-fit:contain;border-radius:12px}.trash-media-item audio{width:230px;max-width:100%}.trash-row{padding:16px 0;border-bottom:1px solid var(--line)}

/* A calm, weather-aware home with a compact working area. */
.home-welcome{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:0 0 18px;flex:none}.home-welcome h1{font-size:30px;margin-top:5px;letter-spacing:-1px}.welcome-dot{color:var(--accent)}.home-weather{display:flex;align-items:center;gap:14px;min-height:68px;color:var(--ink)}.home-weather>svg{width:42px;height:42px;color:var(--accent);flex:none}.home-weather strong{font-size:22px;font-weight:600}.home-weather strong span{font-size:13px;margin-left:8px}.home-weather p{font-size:11px;color:var(--muted);margin:2px 0}.home-weather small{font-size:9px;color:var(--muted)}.home-weather a{text-decoration:none}.home-weather a:hover{text-decoration:underline}.overview-total small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.tickets-shell .overview-total{padding:8px 12px;min-width:0}.tickets-shell .overview{min-height:88px}.nav .invite-tenant{margin-top:12px;border:1px solid var(--line);background:var(--panel);padding:14px 10px;gap:9px;font-size:12px;color:var(--ink)}.invite-tenant span{flex:1}.invite-tenant small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:3px}.invite-tenant>.icon:last-child{width:15px;color:var(--accent)}.profile-menu{max-height:70dvh;overflow:auto}.mail-editor{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:24px;align-items:start}.mail-preview{width:100%;height:570px;border:1px solid var(--line);border-radius:18px;background:#f4f1f2}.mail-preview-panel{position:sticky;top:24px}.mail-preview-panel>p{margin-bottom:12px}#invitation-preview .mail-preview{height:360px;margin-top:12px}#invitation-form>.row>label{flex:1;min-width:0}#auto-mail-label[hidden]{display:none}.mail-editor .panel{padding:24px}.mail-editor form{gap:15px}
@media(max-width:1100px){.home-welcome{margin-bottom:12px;gap:10px}.home-welcome h1{font-size:25px}.home-weather{gap:8px}.home-weather>svg{width:30px;height:30px}.home-weather strong{font-size:18px}.home-weather strong span{font-size:11px}.nav .invite-tenant{font-size:0;padding:12px 6px}.invite-tenant span,.invite-tenant>.icon:last-child{display:none}.profile-menu{width:240px;right:auto}.overview-total small{font-size:9px}.mail-editor{grid-template-columns:1fr}.mail-preview-panel{position:static}}
@media(max-height:750px){.home-welcome{margin-bottom:8px}.home-welcome h1{font-size:25px}.home-weather{min-height:55px}.tickets-shell .overview{margin-bottom:12px;padding:10px 18px;min-height:76px}.tickets-shell .topbar{flex-basis:45px}}
@media(prefers-reduced-motion:reduce){.home-weather>svg,body:has(.shell):before{animation:none!important;transition:none!important}}
#app{position:relative;z-index:1}body:has(.shell):before{z-index:0}

.invitation-result{text-align:center;padding:14px 0 22px}.invitation-result h3{font-size:24px;margin:12px 0}.invitation-result p{line-height:1.7;overflow-wrap:anywhere}.invitation-flight{position:relative;width:76px;height:76px;margin:0 auto;border-radius:50%;background:#b11f3a12;color:#b11f3a;display:grid;place-items:center;overflow:hidden}.invitation-flight svg{width:40px;height:40px}.invitation-flight span{position:absolute;font-size:36px;opacity:0}.is-sent .invitation-flight svg{animation:invitation-send .65s ease-in forwards}.is-sent .invitation-flight span{animation:invitation-check .3s .55s ease-out forwards}@keyframes invitation-send{to{transform:translate(65px,-65px);opacity:0}}@keyframes invitation-check{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.is-sent .invitation-flight svg{animation:none;opacity:0}.is-sent .invitation-flight span{animation:none;opacity:1}}
/* Invitation action */
#invite-tenant{display:flex;align-items:center;position:relative;margin-top:14px;min-height:68px;padding:14px 16px;gap:12px;border:1px solid #8f2946;border-radius:17px;background:linear-gradient(135deg,#a83454,#79243e);color:#fff;box-shadow:0 6px 16px #77233e1c,inset 0 1px #ffffff20;transition:transform .2s,box-shadow .2s,background .2s;text-align:left}
#invite-tenant:hover{background:linear-gradient(135deg,#b63b5c,#892b47);color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px #77233e2b,inset 0 1px #ffffff25}
#invite-tenant:active{background:linear-gradient(135deg,#96304b,#702139);transform:translateY(0);box-shadow:0 3px 8px #77233e20}
#invite-tenant:focus{outline:none}#invite-tenant:focus-visible{outline:2px solid #b11f3a;outline-offset:4px}
#invite-tenant .invite-emblem{display:grid;place-items:center;flex:0 0 25px;width:25px;height:30px;color:#fff;background:none;border:0;border-radius:0}
#invite-tenant .invite-emblem .icon{width:23px;height:23px;stroke-width:1.6}
#invite-tenant .invite-label{display:block;flex:1;color:#fff;font-size:13px;line-height:1.4;font-weight:550;letter-spacing:.1px}
@media(max-width:1100px){#invite-tenant{padding:12px 5px;justify-content:center;min-height:52px;border-radius:14px}#invite-tenant .invite-label{display:none}#invite-tenant .invite-emblem{display:grid;flex-basis:25px}}
@media(prefers-reduced-motion:reduce){#invite-tenant{transition:none}}
/* Quiet weather layers behind the workspace. */
#app{position:relative;z-index:1}body{overflow-x:hidden}
body:has(.shell):before,body:has(.shell):after{content:'';position:fixed;inset:-12%;z-index:0;pointer-events:none;opacity:0;animation:none;transition:opacity 1.8s;background:none}
body[data-weather=sun]:has(.shell):before{opacity:.8;background:radial-gradient(circle at 82% 18%,#fff5c9 0 45px,#f3cf7d88 80px,#f5cc6e44 180px,transparent 380px),radial-gradient(ellipse at 20% 80%,#edbda03d,transparent 55%);animation:ambience-sun 9s ease-in-out infinite alternate}
body[data-weather=sun]:has(.shell):after{opacity:.3;background:conic-gradient(from 0deg at 82% 18%,transparent 0deg,#f6ce7e60 20deg,transparent 40deg,transparent 100deg,#f6ce7e60 120deg,transparent 140deg,transparent 200deg,#f6ce7e60 220deg,transparent 240deg);animation:ambience-sun 14s ease-in-out infinite alternate-reverse}
body[data-weather=cloud]:has(.shell):before{opacity:.8;background-image:url('assets/weather-clouds.svg');background-repeat:repeat-x;background-size:1100px 520px;background-position:0 0;animation:ambience-cloud 22s ease-in-out infinite alternate;filter:blur(2px)}
body[data-weather=cloud]:has(.shell):after{opacity:.5;background-image:url('assets/weather-clouds.svg');background-repeat:repeat-x;background-size:1400px 660px;background-position:450px 48vh;animation:ambience-cloud 32s ease-in-out infinite alternate-reverse;filter:blur(5px)}
body.dark[data-weather=cloud]:has(.shell):before{opacity:.2}
body.dark[data-weather=cloud]:has(.shell):after{opacity:.12}
body[data-weather=fog]:has(.shell):before{opacity:.8;background:linear-gradient(175deg,transparent 5%,#aebfce80 25%,#ffffffba 37%,transparent 50%,#aebfce70 68%,transparent 85%);filter:blur(14px);animation:ambience-fog 14s ease-in-out infinite alternate}
body[data-weather=fog]:has(.shell):after{opacity:.7;background:linear-gradient(185deg,transparent 15%,#ffffffcf 40%,#b4c4d15c 52%,transparent 70%);filter:blur(20px);animation:ambience-fog 21s ease-in-out infinite alternate-reverse}
body[data-weather=rain]:has(.shell):before{opacity:.7;background:radial-gradient(ellipse at 75% 0%,#829cb799,transparent 70%)}
body[data-weather=rain]:has(.shell):after{opacity:.6;background-image:url('assets/weather-rain.svg');background-size:240px 320px;animation:ambience-rain 1.8s linear infinite}
body[data-weather=snow]:has(.shell):before{opacity:.7;background:radial-gradient(ellipse at 75% 10%,#a6cbdc99,transparent 70%)}
body[data-weather=snow]:has(.shell):after{opacity:.85;background-image:radial-gradient(circle,#ffffff 3px,#9eb3c266 4px,transparent 5px),radial-gradient(circle,#ffffffee 2px,#91abba55 3px,transparent 4px);background-size:117px 173px,193px 237px;background-position:0 0,63px 83px;animation:ambience-snow 14s linear infinite}
body[data-weather=wind]:has(.shell):before{opacity:.65;background:repeating-linear-gradient(170deg,transparent 0 110px,#9bafbf66 140px,#ffffff99 152px,transparent 180px);filter:blur(7px);animation:ambience-fog 6s ease-in-out infinite alternate}
body[data-weather=night]:has(.shell):before{opacity:.65;background:radial-gradient(circle at 82% 18%,#f8f3dcb0 0 28px,#939ac533 34px,transparent 120px),radial-gradient(ellipse at 80% 0%,#7c85b977,transparent 65%);animation:ambience-sun 16s ease-in-out infinite alternate}
@keyframes ambience-sun{to{transform:scale(1.08) translate(-2%,3%);opacity:.4}}
@keyframes ambience-cloud{from{transform:translateX(-8%)}to{transform:translateX(12%)}}
@keyframes ambience-fog{from{transform:translate(-5%,2%)}to{transform:translate(5%,-2%)}}
@keyframes ambience-rain{to{background-position:-80px 320px}}
@keyframes ambience-snow{to{background-position:117px 346px,256px 557px}}
@media(prefers-reduced-motion:reduce){body:has(.shell):before,body:has(.shell):after,.nav .invite-tenant,.invite-arrow{animation:none!important;transition:none!important}}

/* Keep search and filters together so the list has more vertical room. */
.tickets-shell .ticket-controls{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:0;margin-bottom:12px}
.tickets-shell .ticket-controls .search{flex:1 1 220px;min-width:180px;max-width:360px}
.tickets-shell .ticket-controls .search input{height:42px}
.tickets-shell .ticket-controls .search svg{top:12px}
.tickets-shell .ticket-controls label{min-width:135px;flex:0 1 155px}
.tickets-shell .ticket-controls .btn{height:42px;white-space:nowrap}
@media(max-width:1100px){.tickets-shell .ticket-controls{gap:8px}.tickets-shell .ticket-controls .search{flex-basis:190px}.tickets-shell .ticket-controls label{min-width:115px;flex-basis:125px}.tickets-shell .ticket-controls #clear-filters{padding:8px 4px}}

/* Invitation action in the centre of the home overview. */
.tickets-shell .overview{align-items:center;gap:20px}
.tickets-shell .overview-total{flex:1 1 0}
.tickets-shell .overview-actions{flex:1 1 0;justify-content:flex-end}
.tickets-shell .overview #invite-tenant{display:inline-flex;align-items:center;justify-content:center;gap:12px;flex:0 0 auto;width:auto;min-height:48px;margin:0;padding:12px 20px;border-radius:14px}
.tickets-shell .overview #invite-tenant .invite-emblem{display:grid;place-items:center;flex:none;width:28px;height:28px;padding:0;background:transparent;box-shadow:none}
.tickets-shell .overview #invite-tenant .invite-emblem .icon{width:22px;height:22px}
.tickets-shell .overview #invite-tenant .invite-label{display:block;flex:none;font-size:13px;line-height:1.3;white-space:nowrap}
@media(max-width:1200px){.tickets-shell .overview{gap:10px;flex-wrap:wrap}.tickets-shell .overview #invite-tenant{padding:10px 14px}.tickets-shell .overview-total{min-width:200px}.tickets-shell .overview-actions{min-width:260px}}

.provider-filters{display:flex;gap:16px;align-items:end;margin:0 0 20px;flex-wrap:wrap}.provider-filters .search{flex:1;min-width:220px;max-width:440px}.provider-filters label{min-width:230px}.provider-filters input,.provider-filters select{height:44px}.table tr[hidden]{display:none}.password-help{font-size:12px;color:var(--accent);padding:8px;text-decoration:underline}.entry form>p{font-size:12px;line-height:1.5}

.profile-trigger{gap:8px}.profile-trigger .avatar{flex:0 0 29px;width:29px;height:29px}.profile-identity{min-width:0;flex:1}.profile-identity strong{display:block;white-space:nowrap;font-size:12px;overflow:hidden;text-overflow:ellipsis}.profile-chevron{flex:none;margin-left:0;font-size:12px}.sidebar-bottom{padding-left:4px;padding-right:4px}

.home-weather{display:grid;grid-template-columns:36px auto;column-gap:10px;row-gap:6px}.weather-days{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;border-top:1px solid #a78aa825;padding-top:6px}.weather-day{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted)}.weather-day svg{width:17px;height:17px;color:var(--accent)}.home-weather .weather-day strong{font-size:11px;font-weight:600;color:var(--ink)}@media(max-width:1100px){.weather-days{gap:8px}.weather-day{gap:3px;font-size:9px}}

.workspace{position:relative}.topbar>.home-weather{position:absolute;top:50px;right:29px;min-width:340px;z-index:2}.topbar>.top-right{margin-left:auto}.home-welcome{min-height:100px;padding-right:390px}.workspace>.page:not(:has(.home-welcome)){padding-top:115px}@media(max-width:1100px){.topbar>.home-weather{right:14px;min-width:310px}.home-welcome{padding-right:330px}.home-welcome h1{font-size:23px}}

/* Compact dossier heading alongside the shared weather. */
.workspace>.page:has(.ticket-heading){padding-top:0}
.ticket-heading-nav{padding-right:410px;margin-bottom:10px;justify-content:flex-start;gap:14px}
.ticket-heading-nav #mark-unread{font-size:11px}
.ticket-heading-main{padding-right:410px;align-items:flex-start;gap:14px;min-height:100px}
.ticket-heading-main h1{font-size:30px;letter-spacing:-1px}
.ticket-heading-main>.header-priority{min-width:110px}
.archive-ticket{color:var(--accent);flex:none}
.ticket-heading{margin-bottom:18px}
@media(max-width:1200px){.ticket-heading-main{flex-wrap:wrap;padding-right:350px;min-height:130px}.ticket-heading-nav{padding-right:350px}.ticket-heading-main h1{font-size:25px}.ticket-heading-main>.header-priority{display:flex;align-items:center;gap:10px}.ticket-heading-main>.header-priority select{width:120px}}

.ticket-heading-main{flex-direction:column;justify-content:flex-start;gap:12px;min-height:0;padding-bottom:14px}.ticket-heading-main>.header-priority{display:flex;align-items:center;gap:12px;min-width:0}.ticket-heading-main>.header-priority select{width:150px;min-height:40px}.ticket-heading-main>.header-priority{font-size:11px}

/* Four centered forecast columns, with the day above its icon and temperature. */
.weather-days{justify-content:center;gap:22px;padding-top:7px}
.weather-day{display:grid;grid-template-columns:17px auto;justify-content:center;align-items:center;column-gap:4px;row-gap:3px;min-width:48px}
.weather-day>span{grid-column:1/-1;text-align:center;line-height:12px}
.home-welcome{min-height:116px}
.workspace>.page:not(:has(.home-welcome)):not(:has(.ticket-heading)){padding-top:131px}
@media(max-width:1100px){.weather-days{gap:18px}}

/* Theme-specific intensities keep weather legible without washing out dark panels. */
body.dark[data-weather=sun]:has(.shell):before{opacity:.26;animation-name:ambience-sun-dark}
body.dark[data-weather=sun]:has(.shell):after{opacity:.13;animation-name:ambience-sun-dark}
body.dark[data-weather=cloud]:has(.shell):before{opacity:.32}
body.dark[data-weather=cloud]:has(.shell):after{opacity:.18}
body.dark[data-weather=fog]:has(.shell):before{opacity:.2}
body.dark[data-weather=fog]:has(.shell):after{opacity:.14}
body.dark[data-weather=rain]:has(.shell):before{opacity:.27}
body.dark[data-weather=rain]:has(.shell):after{opacity:.45;filter:brightness(1.4)}
body.dark[data-weather=snow]:has(.shell):before{opacity:.24}
body.dark[data-weather=snow]:has(.shell):after{opacity:.42}
body.dark[data-weather=wind]:has(.shell):before{opacity:.25}
body.dark[data-weather=night]:has(.shell):before{opacity:.35;animation-name:ambience-sun-dark}
@keyframes ambience-sun-dark{to{transform:scale(1.08) translate(-2%,3%)}}

/* Soft precipitation with varied sizes and a gentle, continuous drift. */
body[data-weather=rain]:has(.shell):after{background-image:url('assets/weather-rain.svg?v=2');background-size:360px 480px;animation:ambience-rain-natural 8.4s linear infinite;opacity:.65}
body[data-weather=snow]:has(.shell):after{background-image:url('assets/weather-snow.svg');background-size:360px 420px;animation:ambience-snow-natural 26s linear infinite;opacity:.85}
body.dark[data-weather=rain]:has(.shell):after{opacity:.5;filter:brightness(1.4)}
body.dark[data-weather=snow]:has(.shell):after{opacity:.65}
@keyframes ambience-rain-natural{to{background-position:-360px 1440px}}
@keyframes ambience-snow-natural{0%{background-position:0 0}50%{background-position:18px 210px}100%{background-position:0 420px}}
