@font-face{font-family:Ravi;src:local("Ravi"),url("/fonts/Ravi.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Vazirmatn;src:url("/fonts/vazirmatn-arabic-wght-normal.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:Ravi,Vazirmatn,"Segoe UI",Tahoma,sans-serif;color:#17243b;background:#f4f6fb;font-size:14px;--navy:#001e47;--blue:#025cff;--muted:#586982;--line:#e7ecf4;--soft:#f5f7fc;--green:#168268;--radius:22px;--shadow:0 6px 24px #10295b06}
*{box-sizing:border-box}
body{margin:0;min-width:300px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.54;cursor:wait}
a{color:var(--blue);text-decoration:none}
h1,h2,h3,p{margin:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8db7ff;outline-offset:2px}
svg{display:block;flex:none}
.shell{min-height:100dvh;display:grid;grid-template-columns:232px minmax(0,1fr)}
.sidebar{background:#fff;border-inline-end:1px solid var(--line);display:flex;flex-direction:column;gap:28px;padding:25px 17px 17px;position:sticky;top:0;height:100dvh;z-index:5}
.brand{display:flex;align-items:center;justify-content:center;min-height:45px;padding:0 8px}
.brand img{width:169px;max-width:100%;height:auto}
.nav-label{color:#61718a;font-size:.73rem;font-weight:760;padding:0 12px;margin:0 0 7px}
.nav-group{display:grid;gap:4px}
.nav,.identity{display:flex;width:100%;gap:11px;align-items:center;border:0;background:transparent;text-align:start}
.nav{min-height:44px;border-radius:12px;color:#455670;padding:8px 11px;font-size:.91rem;font-weight:610}
.nav:hover,.identity:hover{background:var(--soft)}
.nav.current{color:#034ed9;background:#eaf1ff;font-weight:800}
.nav svg{width:19px;height:19px}
.nav .count{margin-inline-start:auto}
.sidebar-foot{margin-top:auto;display:grid;gap:7px;border-top:1px solid var(--line);padding-top:13px}
.identity{padding:7px 6px;border-radius:12px}
.identity strong,.identity small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.identity span:nth-child(2){min-width:0;flex:1}
.identity small{color:var(--muted);font-size:.73rem;margin-top:1px}
.avatar{display:inline-grid;place-items:center;flex:none;width:39px;height:39px;border-radius:13px;background:#e9f0ff;color:#0b50c7;font-weight:850;font-size:.83rem}
.avatar.a1{background:#e6f6ef;color:#13785d}
.avatar.a2{background:#f0ebff;color:#6845b6}
.avatar.a3{background:#fff1df;color:#9a4f13}
.avatar.a4{background:#fcecf1;color:#aa3e6b}
.avatar.lg{width:58px;height:58px;border-radius:19px;font-size:1.1rem}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 33px;height:72px;background:#ffffffed;border-bottom:1px solid var(--line);gap:12px}
.crumb{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted)}
.crumb strong{color:#162844;font-weight:740}
.top-actions,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.top-actions{flex-wrap:nowrap}
.top-actions .search-trigger{min-width:175px;justify-content:start;background:#f6f8fd}
kbd{font:inherit;color:#63728a;border:1px solid #dee5f1;border-radius:5px;padding:0 5px;margin-inline-start:auto;font-size:.73rem}
.count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;background:#e0eaff;color:#0951d3;font-size:.7rem;border-radius:8px}
.icon-btn{display:inline-grid;place-items:center;position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#33496a}
.icon-btn:hover{background:#eaf1ff;color:#034ed9}
.dot{position:absolute;background:#025cff;border:2px solid #fff;width:10px;height:10px;border-radius:50%;top:6px;right:7px}
.menu-btn{display:none}
.content{max-width:1510px;margin:auto;padding:26px 33px 36px}
.intro{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:18px}
.eyebrow{font-size:.75rem;font-weight:800;color:#1c56bb;letter-spacing:.03em;margin-bottom:4px}
h1{font-size:clamp(1.65rem,2.9vw,2.3rem);font-weight:880;letter-spacing:-.035em;line-height:1.35}
.sub,.muted{color:var(--muted)}
.intro .sub{margin-top:5px}
.date-pill,.demo-pill{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px 11px;color:#4b607e;font-size:.81rem;white-space:nowrap}
.demo-pill{padding:5px 8px;background:#fff6e7;color:#8d531b;border-color:#fbe5c4}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;min-height:204px;background:linear-gradient(108deg,#1447a1 0%,#073473 44%,#08254d 100%);color:#fff;border-radius:25px;margin-bottom:18px;padding:23px 27px;box-shadow:0 10px 23px #122b601a}
.hero-copy{position:relative;z-index:1;max-width:72%}
.hero .eyebrow{color:#bfdaff;font-size:.76rem}
.hero h2{font-weight:850;font-size:clamp(1.25rem,2.5vw,1.96rem);margin:5px 0 8px}
.hero p{color:#d1e2fc;font-size:.9rem;margin-bottom:17px}
.hero .btn{border-color:#ffffff46}
.hero .btn.ghost{background:#ffffff16;color:#fff}
.hero .btn.ghost:hover{background:#ffffff30}
.hero-art{position:absolute;left:-22px;bottom:-22px;width:min(47%,420px);height:auto;opacity:.98;pointer-events:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:7px 12px;background:#fff;border:1px solid var(--line);border-radius:11px;color:#2a4262;font-weight:700;font-size:.84rem;white-space:nowrap}
.btn:hover{background:#edf3ff;border-color:#dbe8ff;color:#034ed9}
.btn.primary{color:#fff;background:var(--blue);border-color:var(--blue);box-shadow:0 3px 8px #025cff25}
.btn.primary:hover{background:#034bd5}
.btn.danger{color:#a82643}
.btn.compact{min-height:33px;padding:4px 8px;font-size:.78rem}
.btn.text{border-color:transparent;background:transparent;color:#0753d4}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px}
.stat,.panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.stat{padding:13px 14px;border-radius:17px;min-width:0;text-align:start}
button.stat:hover{border-color:#b8cefc}
.stat-top{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.83rem;color:#425572;font-weight:690}
.stat-value{font-size:1.88rem;line-height:1.2;font-weight:880;letter-spacing:-.03em;margin:2px 0}
.stat-desc{color:#5a6d87;font-size:.73rem}
.tile-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#eaf1ff;color:#0753dc;flex:none}
.tile-icon.green{background:#e7f8f0;color:#158469}
.tile-icon.violet{background:#f1ebff;color:#744cc4}
.tile-icon.amber{background:#fff2e3;color:#a35d19}
.tile-icon.gray{background:#eef2f8;color:#435776}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.49fr) minmax(0,1fr);gap:15px}
.panel{border-radius:var(--radius);padding:17px 18px;min-width:0}
.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:12px}
.panel h2{font-size:1.07rem;font-weight:830}
.panel-heading p{font-size:.76rem;color:var(--muted);margin-top:3px}
.panel-heading>.actions{justify-content:end}
.progress-wrap{display:grid;grid-template-columns:146px 1fr;align-items:center;gap:12px;padding:3px 0 12px}
.ring{position:relative;display:grid;place-items:center;width:132px;height:132px;margin:auto}
.ring svg{width:132px;height:132px;transform:rotate(-90deg)}
.ring div{position:absolute;text-align:center}
.ring b{display:block;font-size:1.68rem;line-height:1.2;font-weight:860}
.ring small{color:var(--muted);font-size:.7rem}
.legend{display:grid;gap:10px}
.legend div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:.82rem}
.legend i{width:8px;height:8px;border-radius:50%}
.legend strong{font-weight:830}
.trend{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;border-top:1px solid var(--line);padding-top:8px;align-items:end;text-align:center}
.trend .bar-box{height:35px;display:flex;align-items:end;justify-content:center}
.trend i{display:block;width:min(27px,55%);border-radius:5px 5px 2px 2px;background:#b8d1ff}
.trend div:last-child i{background:#025cff}
.trend small{color:var(--muted);font-size:.69rem;white-space:nowrap}
.rows{display:grid}
.row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);min-width:0}
.row:last-child{border-bottom:0}
button.row{border:0;border-bottom:1px solid var(--line);width:100%;background:transparent;text-align:start}
button.row:hover{background:#f7f9ff}
.row .stretch{min-width:0;flex:1}
.row strong,.row small{display:block;overflow-wrap:anywhere}
.row strong{font-size:.84rem}
.row small{color:var(--muted);font-size:.73rem;margin-top:2px}
.row time{color:var(--muted);font-size:.73rem;white-space:nowrap}
.full{grid-column:1/-1}
.status,.badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:750;padding:3px 8px;border-radius:20px;background:#edf2f9;color:#4d5e76;white-space:nowrap}
.status.doing,.badge.blue{color:#0951cc;background:#eaf1ff}
.status.done,.badge.green{color:#13745b;background:#e5f7ef}
.badge.high{color:#963d26;background:#ffede6}
.badge.violet{color:#6641ac;background:#f1ebff}
.empty{display:grid;justify-items:center;text-align:center;gap:9px;padding:28px 10px;color:var(--muted);font-size:.86rem}
.empty strong{color:#2b405f;font-size:.95rem}
.filters{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.tabs{display:flex;gap:3px;background:#eef2f9;border-radius:12px;padding:3px;max-width:100%;overflow:auto}
.tab{border:0;background:none;color:var(--muted);padding:6px 10px;border-radius:9px;font-size:.83rem;font-weight:720;white-space:nowrap}
.tab.on{background:#fff;color:#064dc8;box-shadow:0 1px 5px #1c356714}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.lane{border:1px solid #e6ecf5;background:#eef2f9;border-radius:17px;padding:11px;min-width:0}
.lane-head{display:flex;justify-content:space-between;margin-bottom:9px}
.taskcard{display:block;width:100%;text-align:start;background:#fff;border:1px solid #e2e9f4;border-radius:13px;padding:10px;margin-bottom:7px}
.taskcard:hover{border-color:#a5bffc}
.taskcard strong{display:block;margin:6px 0;overflow-wrap:anywhere}
.taskcard small{font-size:.74rem;color:var(--muted)}
.taskmeta{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.overdue{color:#ac3747!important}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.person-card{display:grid;gap:8px;text-align:start;min-width:0}
.person-card h2,.person-card p{overflow-wrap:anywhere}
.person-card .actions{margin-top:3px}
.profile-hero{background:linear-gradient(120deg,#edf4ff,#f6f7fd);border-radius:16px;padding:14px;display:flex;align-items:center;gap:12px;margin-bottom:11px}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 13px;margin:12px 0}
.detail-grid dt{font-size:.74rem;color:var(--muted)}
.detail-grid dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:.9rem}
.doc-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:12px 0;color:#253853}
.doc-related{display:grid;gap:5px;margin:12px 0}
.chat-grid{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:545px;border:1px solid var(--line);background:#fff;border-radius:var(--radius);overflow:hidden}
.chat-side{border-inline-end:1px solid var(--line);padding:12px}
.chat-side h2{font-size:.96rem;margin:4px 0 8px}
.chat-side .row{padding:8px 6px;border-radius:9px;border:0}
.chat-side .row.on{background:#eaf1ff}
.chat-main{min-width:0;display:flex;flex-direction:column;max-height:72vh;min-height:540px}
.chat-head{padding:9px 12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:6px}
.chat-person{display:flex;gap:8px;align-items:center;min-width:0}
.chat-person span{overflow-wrap:anywhere}
.chat-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:start;gap:8px;padding:13px;background:#f7f9fd}
.bubble{max-width:min(82%,620px);border-radius:13px;background:#fff;border:1px solid var(--line);padding:7px 10px;overflow-wrap:anywhere}
.bubble p{white-space:pre-wrap;font-size:.9rem}
.bubble.mine{align-self:end;background:#e9f1ff;border-color:#dce9ff}
.bubble-foot{display:flex;align-items:center;justify-content:end;gap:6px;font-size:.7rem;color:var(--muted);margin-top:3px}
.bubble.flash{outline:2px solid #025cff}
.chat-form{padding:9px;display:flex;gap:7px;align-items:end}
.chat-form textarea{min-height:42px;max-height:110px;resize:vertical}
#dialog{width:min(610px,calc(100% - 20px));max-height:calc(100dvh - 28px);border:1px solid var(--line);border-radius:23px;box-shadow:0 20px 90px #09255038;padding:0;color:#17243b;background:#fff}
#dialog::backdrop{background:#13284952;backdrop-filter:blur(3px)}
.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:13px 17px;border-bottom:1px solid var(--line)}
.dialog-head h2{font-size:1.1rem;overflow-wrap:anywhere}
.dialog-content{padding:15px 17px 18px}
form.stack,.form-grid{display:grid;gap:9px}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
label.field{display:grid;gap:3px;font-weight:720;font-size:.82rem;min-width:0}
input:not([type=checkbox]),textarea,select{width:100%;min-width:0;border:1px solid #dce5f2;background:#fff;border-radius:10px;padding:8px 9px;min-height:40px}
textarea{min-height:98px;resize:vertical}
legend{font-weight:750;font-size:.82rem;padding-inline:4px}
fieldset{border:1px solid #dce5f2;border-radius:10px;display:flex;gap:9px;flex-wrap:wrap;margin:0;padding:7px 9px}
.check{display:flex;align-items:center;gap:4px;font-size:.83rem}
input[type=checkbox]{accent-color:var(--blue)}
.form-error{color:#a82643;font-size:.82rem}
.form-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap;margin-top:5px}
.login{display:grid;min-height:100dvh;place-items:center;padding:15px;background:radial-gradient(ellipse at 5% 0%,#d8e7ff,transparent 55%),#f3f6fb}
.login-card{width:min(100%,430px);padding:25px}
.login-card .brand{justify-content:start;padding:0;margin-bottom:15px}
.login-card .sub{margin:5px 0 13px}
.splash{display:grid;min-height:100dvh;place-content:center;justify-items:center;gap:14px;color:#465d7c}
.splash img{width:160px}
#toast{position:fixed;bottom:15px;left:15px;z-index:15;max-width:min(380px,calc(100vw - 30px));background:#08264e;color:white;padding:9px 13px;border-radius:12px;box-shadow:0 8px 25px #1127463a}
#toast:empty{display:none}
.key-box{font-family:monospace;overflow-wrap:anywhere;background:#edf3ff;padding:10px;border-radius:9px;display:block;text-align:left;margin:9px 0;user-select:all}
#print-document{display:none}
@media(max-width:1050px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.topbar,.content{padding-inline:19px}.stat{padding-inline:9px}.dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;inset:0 0 0 auto;width:min(250px,85vw);box-shadow:0 0 0 100vmax #1026474c}.sidebar.open{display:flex}.menu-btn{display:inline-grid}.topbar{height:59px;padding-inline:12px}.content{padding:17px 12px 23px}.date-pill{display:none}.hero{min-height:180px;padding:16px}.dashboard-grid{gap:10px}.stats{gap:8px}.panel{padding:13px}.hero-art{width:48%}.top-actions .search-trigger{min-width:0}.top-actions kbd{display:none}}
@media(max-width:565px){.topbar .crumb span,.topbar .crumb>svg,.search-label{display:none}.top-actions .search-trigger{width:40px;padding:0;justify-content:center}.top-actions{gap:5px}.intro{align-items:start;flex-wrap:wrap;gap:7px}.intro .sub{font-size:.83rem}.stats,.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.board{grid-template-columns:1fr}.hero-copy{max-width:100%}.hero-art{opacity:.35;width:63%;left:-18%;bottom:-8%}.hero p{max-width:95%;font-size:.79rem}.hero{margin-bottom:10px}.panel-heading{gap:5px}.panel-heading>.btn{font-size:.72rem}.chat-grid{grid-template-columns:1fr;min-height:0}.chat-side{border-inline-end:0;border-bottom:1px solid var(--line);padding:7px}.chat-side h2{display:none}.chat-side .rows{display:flex;overflow:auto;gap:5px}.chat-side .row{width:auto;min-width:max-content}.chat-side .row small{display:none}.chat-side .avatar{width:30px;height:30px}.chat-main{min-height:380px;max-height:66dvh}.chat-head .btn{font-size:.7rem}.detail-grid{gap:8px}.row time{display:none}.date-pill{display:none}}
@media(max-width:350px){.people-grid,.form-grid{grid-template-columns:1fr}.hero .btn{font-size:.72rem}.chat-head .avatar{display:none}}
@media print{@page{size:A4;margin:16mm}body{background:#fff;color:#152645}#app,#dialog,#toast{display:none!important}#print-document{display:block;font-size:11pt}.paper-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #025cff;padding-bottom:10px;margin-bottom:15px}.paper-head img{width:165px}.paper-head small{color:#53647f}.paper-section{break-inside:avoid-page;padding:9px 0;border-bottom:1px solid #dbe2ec}.paper-section p{white-space:pre-wrap;overflow-wrap:anywhere}.paper-section small{color:#526682}.paper-section h3{margin-bottom:5px}.paper-title{margin-bottom:8px}}

/* Workflow improvements */
.taskcard{display:grid;gap:7px}
.taskcard-open{display:block;width:100%;border:0;background:transparent;text-align:start;padding:0;color:inherit}
.done-quick{justify-self:start;margin-top:2px;min-height:30px;padding:5px 9px;font-size:.73rem}
.field-hint{display:block;color:var(--muted);font-size:.7rem;font-weight:450;line-height:1.7}
.multi-select{min-height:110px!important}
.date-select{width:100%;min-height:40px;text-align:start;border:1px solid #dce5f2;background:#fff;border-radius:10px;padding:8px 10px;color:#253853}
.date-select:hover{border-color:#a9c4fa}
.jalali-calendar{margin-top:7px;padding:10px;border:1px solid #dce5f2;border-radius:13px;background:#fff;box-shadow:0 8px 28px #142b4a12;max-width:330px}
.jalali-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.jalali-cal-head strong{font-size:.86rem}
.jalali-cal-head button{border:1px solid var(--line);background:#f7f9fd;border-radius:8px;width:32px;height:30px;font-size:1.1rem;color:#24446d}
.jalali-week,.jalali-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.jalali-week{margin-bottom:4px;color:var(--muted);font-size:.72rem}
.jalali-week span{padding:5px 0}
.jalali-day{height:34px;border:0;border-radius:8px;background:#f7f9fd;color:#253853;font-size:.78rem}
.jalali-day:hover{background:#eaf1ff;color:#064dc8}
.jalali-day.selected{background:var(--blue);color:#fff;font-weight:800}
.jalali-empty{height:34px}
.attachment-list{display:grid;gap:5px;margin:8px 0}
.attachment-link{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #dce5f2;border-radius:9px;background:#fff;color:#174d9b;font-size:.78rem;text-decoration:none;max-width:100%;min-width:0}
.attachment-link span{overflow-wrap:anywhere;min-width:0;flex:1}
.attachment-link small{color:var(--muted);white-space:nowrap}
.chat-attach{position:relative;display:grid;place-items:center;flex:0 0 40px;height:40px;border:1px solid #dce5f2;border-radius:10px;color:#345477;background:#fff;cursor:pointer;overflow:hidden}
.chat-attach input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.read-receipt{border:0;background:transparent;color:#5276ad;padding:0 3px;font-size:.78rem;font-weight:850;letter-spacing:-2px;cursor:pointer}
.bubble.mine .read-receipt{color:#1c64c8}
.letter-thread{display:grid;gap:10px;margin:12px 0}
.letter-message{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;min-width:0}
.letter-message-head{display:flex;justify-content:space-between;align-items:start;gap:8px;flex-wrap:wrap}
.letter-message-head strong{font-size:.86rem}
.letter-message-head small,.letter-read-list{color:var(--muted);font-size:.72rem}
.letter-recipients{font-size:.75rem;color:var(--muted);margin-top:7px}
.letter-message .doc-body{margin:10px 0}
.letter-read-list{border-top:1px solid var(--line);padding-top:7px;margin-top:8px}
.announcement-list{display:grid;gap:8px;margin-top:13px}
.announcement-row{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:11px}
.announcement-row strong,.announcement-row small{display:block}
.announcement-row small{font-size:.72rem;color:var(--muted);margin-top:3px}
.sound-toggle{color:#2b5e9e}
.sound-toggle[aria-label^="خاموش"]{color:#9aa7b9}
@media(max-width:565px){.announcement-row{align-items:start;flex-direction:column}.chat-attach{flex-basis:36px;height:40px}.jalali-calendar{max-width:100%}}

/* FutureEmirates · iOS-inspired responsive refinement */
:root{--ease-ios:cubic-bezier(.22,.68,0,1.02);--surface-glass:#ffffffdc}
.content{width:100%;max-width:none;padding:clamp(14px,2vw,30px) clamp(12px,2.2vw,36px) 34px}
.shell>div{min-width:0}
.hero,.panel,.stat,.chat-grid,.letter-page,.vault-card,.org-notice-card{min-width:0}
.btn,.icon-btn,.nav,.tab,.row,.stat,.panel,.avatar,.chat-attach,.date-select{transition:background-color .2s var(--ease-ios),border-color .2s var(--ease-ios),color .2s var(--ease-ios),box-shadow .24s var(--ease-ios),transform .24s var(--ease-ios)}
.btn:hover,.icon-btn:hover{transform:translateY(-1px)}
.panel{transition:box-shadow .25s var(--ease-ios),border-color .25s var(--ease-ios)}
.panel:hover{box-shadow:0 10px 32px #10295b0b}
.nav.current{box-shadow:inset 0 0 0 1px #dce8ff}
.hero{box-shadow:0 15px 35px #0b2a5c18}
.hero-copy{animation:hero-in .42s var(--ease-ios) both}
@keyframes hero-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.slide-controls{display:flex;align-items:center;gap:6px;margin-top:15px}
.slide-dot{width:7px;height:7px;border:0;border-radius:99px;background:#ffffff69;padding:0;transition:width .25s var(--ease-ios),background .25s var(--ease-ios)}
.slide-dot.active{width:24px;background:#fff}

/* Recipient checkbox picker */
.recipient-picker{display:grid;gap:8px;border:1px solid #dce5f2;border-radius:14px;padding:9px;background:#fbfcff;min-width:0}
.recipient-picker-top{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.recipient-count{font-size:.75rem;color:#345477;font-weight:800;white-space:nowrap}
.recipient-search{flex:1;max-width:230px;min-height:34px!important;padding:6px 9px!important;font-size:.78rem}
.recipient-selected-chips{display:flex;gap:5px;flex-wrap:wrap}
.recipient-chip{display:inline-flex;align-items:center;border-radius:99px;background:#eaf1ff;color:#1454bb;padding:4px 9px;font-size:.7rem;font-weight:750}
.recipient-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:180px;overflow:auto;padding:2px}
.recipient-option{position:relative;display:flex;align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid #e7edf6;border-radius:10px;background:#fff;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}
.recipient-option:hover{background:#f3f7ff;border-color:#cbdcff}
.recipient-option:has(input:checked){background:#edf4ff;border-color:#a9c7ff}
.recipient-option input{position:absolute;opacity:0;width:1px;height:1px}
.recipient-checkmark{display:grid;place-items:center;flex:none;width:19px;height:19px;border:1.5px solid #c5d1e2;border-radius:6px;color:transparent;background:#fff}
.recipient-option input:checked+.recipient-checkmark{background:var(--blue);border-color:var(--blue);color:#fff}
.recipient-option-copy{display:grid;min-width:0}
.recipient-option-copy strong{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recipient-option-copy small{font-size:.67rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recipient-option[hidden]{display:none}

/* Letter file view is a full page, never a modal */
.letter-page{padding:clamp(14px,2vw,24px);animation:hero-in .3s var(--ease-ios) both}
.letter-page-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.letter-page-top h2{font-size:clamp(1.15rem,2vw,1.5rem);margin:10px 0 5px;overflow-wrap:anywhere}
.letter-page-top .muted{font-size:.78rem}
.letter-thread{display:grid;gap:12px;margin:18px 0}
.letter-message{padding:clamp(12px,1.8vw,18px);border-radius:15px;background:linear-gradient(180deg,#fff,#fcfdff)}
.letter-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;border-top:1px solid var(--line);padding-top:15px;margin-top:15px}

/* Organization-only notices */
.org-notice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.org-notice-card{display:grid;gap:12px;width:100%;text-align:start;color:inherit;cursor:pointer;animation:hero-in .3s var(--ease-ios) both}
.org-notice-card:hover{border-color:#bfd2f6;transform:translateY(-2px)}
.org-notice-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.org-notice-meta time{font-size:.73rem;color:var(--muted);margin-inline-start:auto}
.org-notice-card h2,.org-notice-detail h2{font-size:1.08rem;overflow-wrap:anywhere}
.org-notice-card p{font-size:.82rem;line-height:1.9;color:#586982;overflow-wrap:anywhere}
.org-notice-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;font-size:.73rem}
.org-notice-open{display:inline-flex;align-items:center;gap:5px;color:var(--blue);font-weight:800;margin-inline-start:auto}
.org-notice-open svg{transform:rotate(180deg)}
.org-notice-detail{padding:clamp(16px,2.5vw,28px);animation:hero-in .3s var(--ease-ios) both}
.org-notice-detail h2{font-size:clamp(1.2rem,2vw,1.55rem);margin:18px 0 10px}
.org-notice-detail .doc-body{font-size:.96rem;line-height:2.1;min-height:110px}
.org-notice-detail .org-notice-footer{margin-top:18px;padding-top:14px}

/* Private organization file vault */
.vault-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:11px 14px;border:1px solid var(--line);border-radius:13px;background:#ffffffa8;color:#345477}
.vault-summary span{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.83rem}
.vault-summary small{color:var(--muted);font-size:.72rem}
.vault-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:stretch}
.vault-card{display:flex;flex-direction:column;gap:13px;animation:hero-in .3s var(--ease-ios) both}
.vault-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vault-file-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#edf3ff;color:#1458c9}
.vault-file-copy{flex:1;min-width:0}
.vault-file-copy h2{font-size:.98rem;overflow-wrap:anywhere}
.vault-file-copy p{margin-top:5px;color:var(--muted);font-size:.76rem;line-height:1.8;overflow-wrap:anywhere}
.vault-file-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.69rem}
.vault-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}
.vault-access-names{border-top:1px solid var(--line);padding-top:9px;color:var(--muted);font-size:.7rem;line-height:1.8}
.vault-upload-zone{position:relative;display:grid;place-items:center;min-height:130px;border:1.5px dashed #b9cbea;border-radius:15px;background:#f7faff;text-align:center;cursor:pointer;overflow:hidden}
.vault-upload-zone:hover{border-color:var(--blue);background:#f0f6ff}
.vault-upload-zone>span{display:grid;justify-items:center;gap:7px;padding:16px;color:#31547f}
.vault-upload-zone strong{font-size:.85rem}
.vault-upload-zone small{font-size:.7rem;color:var(--muted)}
.vault-upload-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.access-mode-options{display:flex;gap:12px;flex-wrap:wrap;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}
.vault-picker[hidden]{display:none}

/* Chat fills the workspace and has a persistent composer */
.chat-grid{width:100%;height:calc(100dvh - 218px);min-height:max(400px,calc(100dvh - 218px));grid-template-columns:minmax(245px,300px) minmax(0,1fr);border-radius:20px;box-shadow:0 8px 28px #10295b09}
.chat-side{padding:14px;overflow:auto;background:#fbfcff}
.chat-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 2px 12px}
.chat-side-head h2{font-size:.95rem}
.chat-side-head span{font-size:.72rem;color:var(--muted)}
.chat-side .row{padding:10px 7px;border-radius:12px;border-bottom:0;margin-bottom:3px}
.chat-side .row.on{background:#eaf1ff;box-shadow:inset 0 0 0 1px #dbe8ff}
.chat-main{height:100%;max-height:none;min-height:0;overflow:hidden;background:#fff}
.chat-head{min-height:64px;padding:11px 16px;background:#ffffffeb;backdrop-filter:blur(12px)}
.chat-body{padding:clamp(14px,2vw,24px);gap:11px;background:linear-gradient(180deg,#f8faff,#f4f7fc)}
.bubble{max-width:min(78%,720px);padding:10px 13px;border-radius:17px;box-shadow:0 2px 8px #18355c08}
.bubble.mine{border-radius:17px 17px 5px 17px}
.bubble:not(.mine){border-radius:17px 17px 17px 5px}
.bubble p{line-height:1.9}
.chat-form{display:grid;gap:7px;padding:10px 13px max(11px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
.chat-compose-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:end;gap:8px}
.chat-compose-row textarea{min-height:43px;max-height:130px;resize:vertical;border-radius:14px;padding:10px 12px}
.chat-attach{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #dce5f2;border-radius:13px;color:#31547f;background:#f8faff;cursor:pointer;overflow:hidden}
.chat-attach:hover{background:#edf4ff;border-color:#c5d9ff;color:var(--blue)}
.chat-attach input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.chat-attach>span{pointer-events:none}
.chat-file-preview{display:flex;gap:6px;flex-wrap:wrap}
.file-preview-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 8px;border-radius:9px;background:#edf4ff;color:#234b85;font-size:.71rem}
.file-preview-chip span{overflow-wrap:anywhere}
.file-preview-chip small{white-space:nowrap;color:var(--muted)}
.chat-form>.field-hint{padding-inline:3px}

/* Dialogs, forms and layout fit */
#dialog{max-width:calc(100vw - 20px)}
.dialog-content{overflow:auto;max-height:calc(100dvh - 95px)}
.form-grid{align-items:start}
.field{min-width:0}
.field>span{display:block}
.attachment-link{min-height:38px}
.row,.taskcard,.person-card,.announcement-row{min-width:0}
@media(max-width:1100px){.vault-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-grid{grid-template-columns:minmax(220px,260px) minmax(0,1fr)}}
@media(max-width:800px){.content{padding:16px 12px 25px}.chat-grid{height:calc(100dvh - 205px);min-height:500px;grid-template-columns:minmax(205px,235px) minmax(0,1fr)}.chat-side{padding:9px}.chat-side .row{gap:7px}.chat-side .avatar{width:34px;height:34px}.chat-main{min-height:0}.org-notice-list{grid-template-columns:1fr}}
@media(max-width:565px){.content{padding:14px 10px 22px}.recipient-options{grid-template-columns:1fr;max-height:170px}.recipient-search{max-width:none;width:100%}.letter-page-top{flex-direction:column}.letter-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.letter-actions .btn{white-space:normal}.vault-grid{grid-template-columns:1fr}.vault-summary{align-items:flex-start;flex-direction:column}.chat-grid{display:grid;grid-template-columns:1fr;height:calc(100dvh - 205px);min-height:max(380px,calc(100dvh - 205px))}.chat-side{border:0;border-bottom:1px solid var(--line);padding:7px 9px}.chat-side-head{display:none}.chat-side .rows{display:flex;overflow:auto;gap:6px;padding:2px}.chat-side .row{display:flex;min-width:115px;width:auto;max-width:165px;margin:0;padding:6px 8px;border:1px solid transparent}.chat-side .row small{display:none}.chat-side .row .stretch{min-width:0}.chat-side .row strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-main{height:100%;min-height:0;max-height:none}.chat-head{min-height:52px;padding:7px 10px}.chat-body{padding:10px}.bubble{max-width:90%}.chat-compose-row{grid-template-columns:38px minmax(0,1fr) auto;gap:6px}.chat-attach{width:38px;height:40px}.chat-compose-row .btn{min-height:40px;padding-inline:9px}.chat-form{padding:8px}.org-notice-card{padding:13px}.org-notice-footer{align-items:flex-start}.org-notice-detail .org-notice-footer{display:grid}.org-notice-detail .org-notice-footer .actions{justify-content:flex-start}}
@media(max-width:360px){.chat-compose-row{grid-template-columns:36px minmax(0,1fr)}.chat-compose-row .btn{grid-column:2;justify-self:end}.chat-compose-row textarea{grid-column:2;grid-row:1}.chat-attach{grid-column:1;grid-row:1}.letter-actions{grid-template-columns:1fr}.recipient-picker-top{align-items:stretch;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v1.2 · compact chat, Drive-like vault, presence and page motion */
.shell>div{display:flex;flex-direction:column;min-width:0;min-height:100dvh}
.content.page-transition{animation:page-enter .24s var(--ease-ios) both}
@keyframes page-enter{from{opacity:0;transform:translateY(7px) scale(.998);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}

/* Conversation takes the full available viewport: no oversized intro block */
#content.chat-page{flex:1;display:flex;min-height:0;height:calc(100dvh - 72px);overflow:hidden;padding:12px clamp(12px,1.7vw,26px) 16px}
#content.chat-page .chat-grid{flex:1;height:100%;min-height:0;grid-template-columns:minmax(220px,275px) minmax(0,1fr)}
#content.chat-page .chat-main{height:100%;min-height:0;max-height:none}
#content.chat-page .chat-body{min-height:0}
#content.chat-page .chat-form{flex:none}
#content.chat-page .chat-side .row small{font-size:.68rem;line-height:1.5}
.chat-person>span:not(.person-avatar-wrap){display:grid;gap:2px;min-width:0}
.chat-person strong{font-size:.86rem}
.chat-person small{font-size:.7rem;color:var(--muted);overflow-wrap:anywhere}

/* Presence indicator and tighter identity layout */
.person-avatar-wrap{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;width:max-content;height:max-content}
.presence-dot{position:absolute;inset-inline-end:-1px;bottom:0;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#a8b2c1}
.presence-dot.online{background:#22b77a;box-shadow:0 0 0 2px #22b77a20}
.presence-dot.offline{background:#a8b2c1}
.person-card-head{display:flex;align-items:center;gap:11px;min-width:0}
.person-ident{display:grid;gap:2px;min-width:0;flex:1}
.person-ident h2{font-size:.93rem;line-height:1.45}
.person-ident p{font-size:.72rem;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.presence-label{font-size:.67rem;color:#77859a;line-height:1.5}
.presence-label.is-online{color:#15956a;font-weight:750}
.person-role{align-self:flex-start;flex:none}
.person-card .actions{padding-top:8px;border-top:1px solid var(--line)}

/* Dashboard slide visual presets */
.hero[data-template="brand"]{background:linear-gradient(112deg,#145a50 0%,#0c403b 48%,#102b31 100%)}
.hero[data-template="brand"] .eyebrow{color:#d7e7bb}
.hero[data-template="alert"]{background:linear-gradient(112deg,#a72d43 0%,#762239 48%,#421b32 100%)}
.hero[data-template="alert"] .eyebrow{color:#ffe1e6}
.hero[data-template="update"]{background:linear-gradient(112deg,#eaf2ff 0%,#dbe8ff 54%,#c8dcfb 100%);color:#15365f;border:1px solid #c8daf8}
.hero[data-template="update"] .eyebrow,.hero[data-template="update"] p{color:#45658d}
.hero[data-template="update"] .btn.ghost{color:#174b91;border-color:#9bb9e8;background:#ffffffa8}
.hero[data-template="event"]{background:linear-gradient(112deg,#493d8c 0%,#302b69 52%,#1b2854 100%)}
.hero[data-template="event"] .eyebrow{color:#e2d9ff}
.slide-template-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.slide-template-option{display:grid;gap:6px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:transform .2s var(--ease-ios),border-color .2s,box-shadow .2s}
.slide-template-option:hover{transform:translateY(-2px);border-color:#b9cef4}
.slide-template-option input{position:absolute;opacity:0;pointer-events:none}
.slide-template-option:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 2px #025cff18}
.template-swatch{height:38px;border-radius:8px;background:linear-gradient(110deg,#1447a1,#08254d)}
.slide-template-option.brand .template-swatch{background:linear-gradient(110deg,#145a50,#102b31)}
.slide-template-option.alert .template-swatch{background:linear-gradient(110deg,#a72d43,#421b32)}
.slide-template-option.update .template-swatch{background:linear-gradient(110deg,#eaf2ff,#c8dcfb);border:1px solid #c8daf8}
.slide-template-option.event .template-swatch{background:linear-gradient(110deg,#493d8c,#1b2854)}
.template-copy{display:grid;gap:2px}
.template-copy strong{font-size:.73rem}
.template-copy small{font-size:.62rem;color:var(--muted);line-height:1.5}

/* Google Drive-like file browser */
.vault-browser{padding:0;overflow:hidden}
.vault-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfcff}
.vault-breadcrumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.vault-crumb{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:0;border-radius:8px;background:transparent;color:#31547f;font-size:.78rem}
.vault-crumb:hover,.vault-crumb.current{background:#eaf1ff;color:#064fcf}
.vault-crumb-sep{color:#a0adbf;font-size:.78rem}
.vault-count{color:var(--muted);font-size:.7rem;white-space:nowrap}
.vault-entries{display:grid;padding:3px 14px}
.vault-entry{display:flex;align-items:center;gap:11px;min-width:0;min-height:62px;padding:8px 4px;border-bottom:1px solid var(--line)}
.vault-entry:last-child{border-bottom:0}
.vault-entry-main{display:flex;align-items:center;gap:11px;flex:1;min-width:0;border:0;background:transparent;text-align:start;color:inherit;padding:0}
.vault-entry-main:hover .vault-entry-copy strong{color:var(--blue)}
.vault-entry-icon{display:grid;place-items:center;flex:none;width:39px;height:39px;border-radius:12px;background:#edf3ff;color:#2459a8}
.vault-entry-icon.folder-icon{background:#fff4df;color:#a86c13}
.vault-entry-copy{display:grid;gap:3px;min-width:0;flex:1}
.vault-entry-copy strong{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vault-entry-copy small{font-size:.68rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vault-entry-meta{display:flex;align-items:center;gap:7px;flex:none;color:#7890b1}
.vault-entry-meta svg{transform:rotate(180deg)}
.vault-entry-actions{display:flex;align-items:center;gap:5px;flex:none}
.vault-entry-actions .icon-btn{width:33px;height:33px;border-radius:10px}
.vault-remove{display:grid;place-items:center;flex:none;width:29px;height:29px;border:1px solid #f2dce1;border-radius:9px;background:#fff7f8;color:#b43c52}
.vault-remove:hover{background:#ffe9ed;border-color:#eebbc5}
.vault-preview{margin-top:13px;padding:0;overflow:hidden}
.vault-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line)}
.vault-preview-head>div{display:grid;gap:3px;min-width:0}
.vault-preview-head strong{font-size:.83rem;overflow-wrap:anywhere}
.vault-preview-head small{font-size:.68rem;color:var(--muted);overflow-wrap:anywhere}
.vault-preview iframe{display:block;width:100%;height:min(72dvh,760px);border:0;background:#f2f5fa}
.vault-preview-unavailable{padding:20px}

@media(max-width:800px){
  #content.chat-page{height:calc(100dvh - 59px);padding:8px 9px max(9px,env(safe-area-inset-bottom))}
  #content.chat-page .chat-grid{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}
  .slide-template-picker{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:565px){
  #content.chat-page{padding:7px;height:calc(100dvh - 59px)}
  #content.chat-page .chat-grid{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  #content.chat-page .chat-side{max-height:76px;overflow:hidden;border-bottom:1px solid var(--line)}
  #content.chat-page .chat-side .row small{display:none}
  #content.chat-page .chat-main{height:100%;min-height:0;max-height:none}
  #content.chat-page .chat-head{min-height:49px}
  #content.chat-page .chat-body{padding:10px}
  .vault-toolbar{align-items:flex-start;flex-direction:column;gap:6px}
  .vault-entry{gap:7px;min-height:58px}
  .vault-entry-icon{width:34px;height:34px}
  .vault-entry-actions{gap:3px}
  .vault-entry-actions .icon-btn{width:30px;height:30px}
  .vault-entry-meta{display:none}
  .slide-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .person-card-head{gap:8px}
  .person-card .avatar.lg{width:46px;height:46px;border-radius:15px}
}
@media(prefers-reduced-motion:reduce){.content.page-transition{animation:none}}
.vault-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:0 2px}
.vault-page-head .eyebrow{margin-bottom:0;font-size:.67rem}
.vault-page-head h1{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.35}
.hero[data-template="brand"] .hero-art{opacity:.74;filter:saturate(.72)}
.hero[data-template="alert"] .hero-art{opacity:.3}
.hero[data-template="update"] .hero-art{opacity:.42;filter:saturate(.62)}
.hero[data-template="event"] .hero-art{opacity:.62;filter:hue-rotate(15deg)}
@media(max-width:565px){.vault-page-head{align-items:flex-start;flex-direction:column}.vault-page-head .actions{width:100%}.vault-page-head .actions .btn{flex:1}}

/* v1.3 · viewport fit, richer previews, activity and profile controls */
.shell>div{height:100dvh;min-height:100dvh;overflow:hidden}
.content{flex:1;min-height:0;width:100%;max-width:none;margin:0;overflow:auto;overscroll-behavior:contain}
#content.chat-page{height:auto;min-height:0;flex:1;margin:0;overflow:hidden;padding:10px clamp(10px,1.6vw,24px) 12px}
#content.chat-page .chat-grid{height:100%;min-height:0}
.compact-page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:0 2px}
.compact-page-head h1{font-size:clamp(1.18rem,1.8vw,1.55rem);line-height:1.4}
.compact-page-head p{margin-top:3px;color:var(--muted);font-size:.78rem}
.letter-page{min-height:100%;}
.dialog-content{animation:dialog-view-enter .22s var(--ease-ios) both}
@keyframes dialog-view-enter{from{opacity:0;transform:translateY(7px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
.chat-main.peer-transition{animation:peer-enter .24s var(--ease-ios) both}
@keyframes peer-enter{from{opacity:.35;transform:translateX(9px);filter:blur(1px)}to{opacity:1;transform:translateX(0);filter:blur(0)}}
.nav,.row,.taskcard,.panel,.stat,.vault-entry,.btn,.icon-btn{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .2s var(--ease-ios)}
.taskcard:hover,.vault-entry:hover{transform:translateY(-2px);box-shadow:0 8px 22px #10295b0b}
#dialog.dialog-preview{width:min(1120px,calc(100vw - 24px));max-width:calc(100vw - 24px)}
.dialog-preview .dialog-content{padding:12px;max-height:calc(100dvh - 86px)}
.vault-media-preview{display:grid;place-items:center;min-height:160px;background:#f2f5fa;border-radius:14px;overflow:hidden}
.vault-media-preview img{display:block;max-width:100%;max-height:78dvh;object-fit:contain}
.vault-media-preview video{display:block;width:100%;max-height:78dvh;background:#0c1423}
.vault-text-preview{display:block;width:100%;height:min(76dvh,820px);border:0;background:#fff}
.vault-entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:11px;padding:14px}
.vault-entry{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:start;gap:9px;min-width:0;min-height:145px;padding:12px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 2px 9px #10295b05}
.vault-entry:last-child{border-bottom:1px solid var(--line)}
.vault-entry-icon{grid-column:1;grid-row:1;width:42px;height:42px;border-radius:13px}
.vault-entry-copy{grid-column:2;grid-row:1;align-self:center;gap:4px}
.vault-entry-copy strong{white-space:normal;overflow-wrap:anywhere;line-height:1.55}
.vault-entry-copy small{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.vault-entry-meta{grid-column:1/-1;grid-row:2;justify-content:flex-start;min-height:22px}
.vault-entry-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end;padding-top:8px;border-top:1px solid #edf1f7}
.folder-entry .vault-entry-main{grid-column:1/-1;grid-row:1/3;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-height:64px}
.folder-entry .vault-entry-actions{grid-row:3}
.vault-entry-main .vault-entry-copy{grid-column:2;grid-row:1}
.vault-entry-main .vault-entry-icon{grid-column:1;grid-row:1}
.vault-entry-meta .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.vault-entry-actions .icon-btn{width:32px;height:32px}
.vault-toolbar{flex-direction:row;align-items:center}
.date-picker-wrap{position:relative;min-width:0}
#jalali-picker{position:fixed;z-index:10001;max-width:calc(100vw - 24px);filter:drop-shadow(0 12px 24px #142b4a20)}
#jalali-picker[hidden]{display:none!important}
#jalali-picker .jalali-calendar{width:100%;max-width:none;margin:0;border-radius:15px;box-shadow:0 12px 32px #142b4a18}
.jalali-cal-head strong{font-variant-numeric:tabular-nums}
.profile-avatar-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}
.profile-avatar-editor .avatar{width:58px;height:58px;border-radius:18px}
.profile-avatar-editor .avatar img,.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.profile-avatar-editor label{position:relative}
.profile-avatar-editor small{flex-basis:100%;margin-inline-start:70px;margin-top:-8px}
.profile-locked-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.profile-locked-grid>div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8faff}
.profile-locked-grid small{font-size:.7rem;color:var(--muted)}
.profile-locked-grid strong{font-size:.84rem;overflow-wrap:anywhere}
.presence-watch-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}
.presence-watch-picker legend{grid-column:1/-1}
.password-change-form{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.password-change-form h3{font-size:.92rem;margin-bottom:3px}
.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.analytics-mode-tabs{display:flex;gap:3px;padding:3px;border-radius:11px;background:#eef2f9}
.analytics-user-filter{display:grid;gap:3px;min-width:min(250px,100%);font-size:.72rem;color:var(--muted)}
.analytics-user-filter select{min-height:36px}
.analytics-self-label{padding:8px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:.78rem;color:#385477}
.analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.analytics-stat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px 10px;padding:13px}
.analytics-stat .tile-icon{grid-row:1/3}
.analytics-stat small{font-size:.72rem;color:var(--muted)}
.analytics-stat strong{font-size:1.2rem;line-height:1.2}
.analytics-chart-panel{margin-bottom:12px}
.analytics-legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 14px;color:var(--muted);font-size:.72rem}
.analytics-legend span{display:inline-flex;align-items:center;gap:6px}
.analytics-legend i{width:9px;height:9px;border-radius:50%}
.legend-blue{background:#3578e5}.legend-violet{background:#8b70d6}.legend-green{background:#20a27d}
.analytics-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:clamp(3px,1vw,12px);min-height:205px;padding:8px 4px 0}
.analytics-bar-group{display:grid;grid-template-rows:170px auto;gap:7px;min-width:0;text-align:center}
.analytics-bar-set{display:flex;align-items:end;justify-content:center;gap:3px;height:170px;border-bottom:1px solid #dce5f2;background:repeating-linear-gradient(to top,transparent 0,transparent 41px,#eef2f7 42px,#eef2f7 43px)}
.analytics-bar-slot{display:flex;align-items:end;justify-content:center;width:min(25px,30%);height:100%}
.analytics-bar-slot i{display:block;width:100%;min-height:0;border-radius:5px 5px 2px 2px;transition:height .35s var(--ease-ios)}
.bar-blue{background:#3578e5}.bar-violet{background:#8b70d6}.bar-green{background:#20a27d}
.analytics-bar-group small{font-size:.64rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.analytics-line-wrap{width:100%;overflow:auto}
.analytics-line-wrap svg{display:block;width:100%;min-width:460px;height:auto}
.analytics-line-wrap text{font-family:inherit;font-size:19px;fill:#71819a}
.line-blue{stroke:#3578e5}.line-violet{stroke:#8b70d6}.line-green{stroke:#20a27d}
.table-scroll{width:100%;overflow:auto}
.analytics-table{width:100%;border-collapse:collapse;min-width:430px}
.analytics-table th,.analytics-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:start;font-size:.78rem;white-space:nowrap}
.analytics-table th{color:var(--muted);font-weight:750;background:#f8faff}
.analytics-table td small{display:block;color:var(--muted);font-size:.67rem;margin-top:2px}
.analytics-person-link{border:0;background:none;color:#1d4e9b;padding:0;font-weight:750}
.analytics-team-panel .panel-heading{margin-bottom:8px}
@media(max-width:800px){
  .shell>div{height:100dvh;min-height:100dvh}
  .content{padding:14px 12px 18px}
  #content.chat-page{height:auto;padding:8px 9px max(9px,env(safe-area-inset-bottom))}
  .analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vault-entries{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));padding:10px}
}
@media(max-width:565px){
  .compact-page-head{align-items:flex-start}
  .compact-page-head p{max-width:48ch}
  .compact-page-head .btn{flex:none}
  #content.chat-page{height:auto;min-height:0;padding:7px}
  #content.chat-page .chat-grid{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  #content.chat-page .chat-side{max-height:76px;overflow:hidden;border-bottom:1px solid var(--line)}
  #content.chat-page .chat-main{height:100%;min-height:0;max-height:none}
  .vault-entries{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}
  .vault-entry{min-height:132px;padding:9px;gap:7px}
  .vault-entry-actions{gap:3px}
  .vault-entry-actions .icon-btn{width:29px;height:29px}
  .vault-entry-meta{display:flex}
  .analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .analytics-stat{padding:10px;gap:5px}
  .analytics-stat strong{font-size:1.05rem}
  .analytics-toolbar{align-items:stretch}
  .analytics-mode-tabs{justify-content:center}
  .analytics-bars{gap:2px;min-height:175px}
  .analytics-bar-group{grid-template-rows:140px auto}
  .analytics-bar-set,.analytics-bar-group{height:auto}
  .analytics-bar-set{height:140px}
  .profile-locked-grid{grid-template-columns:1fr}
  .vault-toolbar{align-items:flex-start;flex-direction:column}
}
@media(max-width:380px){.vault-entries{grid-template-columns:1fr}.compact-page-head{flex-wrap:wrap}.compact-page-head .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.dialog-content,.chat-main.peer-transition{animation:none}.nav,.row,.taskcard,.panel,.stat,.vault-entry,.btn,.icon-btn{transition:none}}

/* Workspace refinements */
#dialog[open],#calendar-dialog[open]{animation:sheet-in .24s cubic-bezier(.2,.75,.25,1) both}
#dialog::backdrop,#calendar-dialog::backdrop{animation:backdrop-in .2s ease-out both}
@keyframes sheet-in{from{opacity:0;translate:0 14px;scale:.975}to{opacity:1;translate:none;scale:1}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
.dialog-content{animation:none}
#calendar-dialog{width:min(350px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:22px;background:#fff;color:#17243b;box-shadow:0 24px 75px #001e4738}
#calendar-dialog::backdrop{background:#001e472e}
.calendar-content{padding:9px 15px 0}
.calendar-content .jalali-calendar{width:100%;max-width:none;margin:0;border:0;box-shadow:none;padding:0}
.calendar-footer{display:flex;justify-content:flex-end;padding:6px 15px 10px}
.date-select{display:flex;align-items:center;gap:7px}
.jalali-day:focus-visible,.file-chip-remove:focus-visible,.review-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.file-preview-chip{max-width:min(100%,440px);padding:4px 7px;gap:6px}
.file-preview-chip>span{min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.file-preview-chip>svg{flex:none}
.file-chip-remove{flex:none;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#dce9fb;color:#375679;transition:background .16s,color .16s,scale .16s}
.file-chip-remove:hover{background:#f9dce4;color:#a12c49}
.file-chip-remove:active{scale:.9}
.profile-avatar-tools{display:grid;gap:5px;min-width:0;flex:1}
.profile-avatar-tools small{margin:0;overflow-wrap:anywhere}
.avatar-upload-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.avatar-upload-button:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.avatar-remove{color:#aa3651}
.profile-locked-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr));gap:13px}
.plan-card{display:grid;align-content:start;gap:9px;min-width:0;text-align:start;color:inherit;cursor:pointer;transition:translate .2s,box-shadow .2s,border-color .2s}
.plan-card:hover{translate:0 -2px;border-color:#c4d8fc;box-shadow:0 8px 26px #001e4710}
.plan-card:active{translate:0 0}
.plan-card-top,.plan-card-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.plan-card h2{font-size:1rem;overflow-wrap:anywhere}
.plan-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;color:var(--muted);font-size:.8rem}
.plan-card-meta{border-top:1px solid var(--line);padding-top:9px;color:var(--muted);font-size:.72rem}
.plan-card-meta span{display:inline-flex;align-items:center;gap:5px;overflow-wrap:anywhere}
.report-head .field{width:min(100%,238px)}
.analytics-toolbar{justify-content:flex-start}
.analytics-toolbar>select{width:auto;max-width:100%}
.analytics-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.chart-controls .tabs{flex-wrap:wrap}
.report-plot{max-width:850px;margin:8px auto 0;display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px}
.report-axis{height:146px;padding-block:9px 11px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:.71rem;color:var(--muted)}
.report-plot svg{width:100%;height:146px;display:block;overflow:visible}
.chart-grid-line{stroke:#e1e9f5;vector-effect:non-scaling-stroke}
.chart-dot{stroke:white;stroke-width:1.25;vector-effect:non-scaling-stroke}
svg .bar-blue{fill:#3578e5}svg .bar-violet{fill:#8b70d6}svg .bar-green{fill:#20a27d}
.report-buckets{display:grid;grid-template-columns:repeat(var(--buckets),minmax(0,1fr));margin-inline:3.2%;gap:2px}
.report-buckets button{border:0;border-radius:7px;padding:3px 0;min-width:0;font-size:clamp(.57rem,1.2vw,.73rem);color:#526582;background:none}
.report-buckets button:hover,.report-buckets button[aria-pressed="true"]{background:#edf4ff;color:#0252c7}
.chart-detail,.report-secondary{display:flex;justify-content:center;align-items:center;gap:7px 16px;flex-wrap:wrap;margin:9px auto 0;font-size:.73rem;color:var(--muted)}
.chart-detail{min-height:42px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fbff;max-width:850px}
.chart-detail i{width:8px;height:8px;border-radius:50%}
.chart-detail span{display:inline-flex;align-items:center;gap:5px}
.chart-detail strong,.chart-detail b,.report-secondary b{color:#20385d}
.report-secondary{border-top:1px solid var(--line);margin-top:13px;padding-top:9px}
.report-empty{text-align:center;color:var(--muted);font-size:.73rem;margin:8px 0}
.review-trigger{border:0;background:transparent;color:#567198;border-radius:9px;padding:3px 5px;display:inline-flex;gap:5px;align-items:center;cursor:pointer}
.review-trigger:hover{background:#edf4ff}
@media(max-width:850px){.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:565px){
  .report-head{flex-wrap:wrap}
  .report-head .field{width:100%}
  .report-plot{grid-template-columns:27px minmax(0,1fr)}
  .report-buckets button:nth-child(even):nth-last-child(n+7):not([aria-pressed="true"]){color:#627494}
  .profile-locked-grid{grid-template-columns:1fr}
  .file-preview-chip{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  #dialog[open],#calendar-dialog[open],#dialog::backdrop,#calendar-dialog::backdrop{animation:none}
  .plan-card,.file-chip-remove{transition:none}
}
@media print{#calendar-dialog{display:none!important}}
