:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#667085;--line:#dce1e9;--p:#3559e0;--ok:#067647;--bad:#b42318}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,Arial,sans-serif}.app-shell{min-height:100dvh;padding-bottom:82px}.topbar{position:sticky;top:0;z-index:10;background:#ffffffee;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.topbar b{display:block;font-size:18px}.topbar small{color:var(--muted)}.top-actions{display:flex;gap:6px;flex-wrap:wrap}.content{max-width:1100px;margin:auto;padding:14px}.hero{background:linear-gradient(135deg,#182848,#3559e0);color:#fff;padding:20px;border-radius:22px;margin-bottom:14px}.hero h1{margin:0 0 8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 8px 28px rgba(35,55,95,.07)}.stat span{color:var(--muted);font-size:12px}.stat b{display:block;margin-top:6px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}.btn,button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:11px;min-height:44px;padding:10px 13px;font:700 14px Tahoma;cursor:pointer}.primary{background:#3559e0;color:#fff}.ghost{background:#edf1f7;color:#24324b}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{padding:8px 2px;text-align:center;text-decoration:none;color:#667085;font-size:18px;min-height:58px}.bottomnav a span{display:block;font-size:10px;margin-top:2px}.bottomnav a.active{color:#3559e0;background:#f4f6ff}.login-screen,.install-shell{min-height:100dvh;display:grid;place-items:center;padding:18px}.login-card,.install-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 20px 60px rgba(23,32,51,.12)}.login-card{text-align:center}.logo{width:52px;height:52px;border-radius:16px;background:#3559e0;color:#fff;display:grid;place-items:center;font-weight:900}.logo.big{width:68px;height:68px;margin:0 auto 12px;font-size:30px}.brandline{display:flex;align-items:center;gap:12px}.brandline h1{margin:0}.brandline p{margin:4px 0;color:var(--muted)}.stack{display:grid;gap:10px;margin-top:14px;text-align:right}label{font-size:12px;color:#526074}input,select{width:100%;min-height:46px;padding:10px 11px;border:1px solid #bac4d3;border-radius:10px;background:#fff;color:var(--ink);font:16px Tahoma,Arial,sans-serif;outline:none;margin-top:5px}input:focus,select:focus{border-color:#6d83e8;box-shadow:0 0 0 3px rgba(53,89,224,.12)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.form-grid .wide{grid-column:1/-1}.check-grid,.health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check,.health{border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc}.check.ok,.health.ok{border-color:#b7ebd0;background:#ecfdf3;color:var(--ok)}.check.bad,.health.bad,.notice.bad{border-color:#f8b4b4;background:#fef3f2;color:var(--bad)}.notice{padding:11px;border-radius:10px;margin:10px 0}.notice.ok{background:#ecfdf3;color:var(--ok)}.tiny{font-size:11px;color:var(--muted);margin-top:14px;line-height:1.8}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title h1{margin:0}.health b,.health span{display:block}.health span{margin-top:6px;font-size:12px}code{direction:ltr;display:block;background:#f6f8fb;padding:10px;border-radius:8px}@media(max-width:700px){.content{padding:9px}.topbar{padding:8px 9px}.top-actions .btn{min-height:38px;padding:7px 9px;font-size:11px}.stats,.grid,.form-grid,.check-grid,.health-grid{grid-template-columns:1fr}.hero{padding:16px;border-radius:16px}.login-screen,.install-shell{padding:9px}.login-card,.install-card{padding:16px;border-radius:18px}.bottomnav a{font-size:17px}.btn,button{font-size:13px}input,select{font-size:16px}}

/* v0.1.1 installer polish */
body{font-family:Vazirmatn,"IRANSans",Tahoma,Arial,sans-serif}.btn,button,input,select{font-family:inherit}
.installer-page{background:radial-gradient(circle at 80% 0,#3559e01a,transparent 34%),linear-gradient(180deg,#f8faff,#eef3fb)}
.install-card-v2{width:min(760px,100%);padding:0;overflow:hidden;border:1px solid #dfe6f2;box-shadow:0 30px 80px rgba(31,48,83,.14)}
.installer-hero{display:flex;align-items:center;gap:14px;padding:22px;background:linear-gradient(135deg,#182848,#3559e0);color:#fff}.installer-hero .logo{background:#ffffff18;border:1px solid #ffffff38;width:58px;height:58px;border-radius:18px;font-size:25px}.installer-hero h1{margin:2px 0 4px;font-size:23px}.installer-hero p{margin:0;color:#dfe7ff;font-size:12px}.installer-kicker{font-size:10px;color:#cdd8ff;font-weight:800;letter-spacing:.2px}
.installer-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e5eaf3;border-bottom:1px solid #dfe5ef}.installer-step{background:#f8fafc;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 6px;color:#7a879a;font-size:11px}.installer-step b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e6ebf3}.installer-step.active{color:#2947bd;background:#f3f6ff}.installer-step.active b{background:#3559e0;color:#fff}
.installer-block{margin:14px;border:1px solid #e4e9f1;border-radius:15px;background:#fff;padding:14px}.installer-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}.installer-block-head>div{display:flex;align-items:center;gap:8px}.installer-block-head h2{margin:0;font-size:16px}.installer-block-head small{color:var(--muted);font-size:10px;line-height:1.8}.section-badge{width:28px;height:28px;border-radius:9px;background:#eef2ff;color:#3559e0;display:grid;place-items:center;font-weight:900}
.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.check{display:flex;align-items:center;gap:8px;min-height:44px}.check-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:900}
.installer-form{padding-bottom:14px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-card{border:1px solid #e1e7ef;border-radius:14px;padding:12px;background:#fbfcfe;display:grid;gap:9px}.role-card.admin-role{border-top:3px solid #4f75e8}.role-card.developer-role{border-top:3px solid #8b5cf6}.role-title{display:flex;align-items:center;gap:9px}.role-title>span{font-size:23px}.role-title b,.role-title small{display:block}.role-title small{color:var(--muted);font-size:10px;margin-top:2px}.installer-timezone{display:block;margin-top:10px}.installer-submit-wrap{padding:0 14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.install-submit{min-width:190px}.install-success{margin:14px;display:grid;gap:8px}.notice b,.notice span{display:block}.notice span{margin-top:4px;font-size:12px}
@media(max-width:700px){.install-shell{padding:0}.install-card-v2{min-height:100dvh;border-radius:0;border:0}.installer-hero{padding:17px 13px}.installer-hero h1{font-size:20px}.installer-steps{position:sticky;top:0;z-index:4}.installer-step{font-size:9px;padding:8px 2px}.installer-step b{width:21px;height:21px}.installer-block{margin:9px;padding:11px;border-radius:13px}.installer-block-head{display:block}.installer-block-head small{display:block;margin-top:5px}.check-grid,.role-grid,.form-grid{grid-template-columns:1fr}.role-card{padding:10px}.installer-submit-wrap{display:grid;padding:0 9px calc(13px + env(safe-area-inset-bottom))}.install-submit{width:100%;min-width:0;min-height:50px}input,select{font-size:16px!important}}

/* v0.2.0 phase 2 */
.section-title p,.company-head p{margin:4px 0;color:var(--muted);font-size:12px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}.quick-card{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:0 8px 28px rgba(35,55,95,.05)}.quick-card>span{font-size:24px;display:block;margin-bottom:8px}.quick-card b,.quick-card small{display:block}.quick-card small{color:var(--muted);font-size:10px;margin-top:4px}.quick-card.disabled{opacity:.72}.create-box summary,.new-panel summary,.account-row summary{cursor:pointer;font-weight:800}.compact-form{margin-top:12px}.company-box{margin-top:10px}.company-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.company-head h2{margin:0 0 7px}.chips{display:flex;gap:5px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;border-radius:999px;background:#edf1f7;padding:4px 8px;font-size:10px;color:#526074}.chip.good{background:#ecfdf3;color:#067647}.muted-chip{background:#f2f4f7;color:#98a2b3}.panel-list{display:grid;gap:7px;margin:12px 0}.panel-row{display:flex;align-items:center;justify-content:space-between;gap:10px;text-decoration:none;color:var(--ink);border:1px solid #e6eaf0;background:#fafcff;border-radius:12px;padding:11px}.panel-row b,.panel-row small{display:block}.panel-row small{color:var(--muted);font-size:10px;margin-top:4px}.panel-metrics{display:flex;gap:6px;font-size:10px;color:#526074;white-space:nowrap}.new-panel{border-top:1px dashed var(--line);padding-top:10px}.toggle-line{display:flex;align-items:center;gap:8px;min-height:46px}.toggle-line input{width:auto;min-height:auto;margin:0}.warning-toggle{padding:9px;border-radius:10px;background:#fff8e6;color:#7a4b00}.panel-top-grid{align-items:start}.search-line{display:grid;grid-template-columns:1fr auto;gap:8px;margin:10px 0}.search-line input{margin:0}.account-list{display:grid;gap:7px}.account-row{border:1px solid #e5eaf1;border-radius:12px;background:#fbfcfe;overflow:hidden}.account-row>summary{list-style:none;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.account-row>summary::-webkit-details-marker{display:none}.account-row>summary b,.account-row>summary small{display:block}.account-row>summary small{color:var(--muted);font-size:10px;margin-top:3px}.account-edit{padding:10px;border-top:1px solid #e5eaf1;background:#fff}.history-list{display:grid;gap:7px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px solid #edf0f4}.history-row:last-child{border-bottom:0}.history-row b,.history-row small{display:block}.history-row small{font-size:10px;color:var(--muted);margin-top:3px}.empty-state{background:#fff;border:1px dashed #cfd7e4;border-radius:16px;padding:24px;text-align:center;color:var(--muted);margin-top:10px}.ltr-inline{direction:ltr;unicode-bidi:isolate}.health-counts{margin-top:10px}
@media(max-width:700px){.quick-grid{grid-template-columns:repeat(2,1fr);gap:7px}.quick-card{padding:11px;border-radius:13px}.quick-card>span{font-size:21px}.company-head,.panel-row,.history-row{align-items:flex-start}.panel-row,.history-row{display:grid}.panel-metrics{white-space:normal}.search-line{grid-template-columns:1fr}.account-row>summary{align-items:flex-start}.account-row>summary .chips{justify-content:flex-end}.section-title{align-items:flex-start}.section-title .btn{min-height:38px;font-size:11px}.panel-top-grid{grid-template-columns:1fr}.toggle-line{min-height:42px}.empty-state{padding:18px 10px}}


/* v0.2.1 mobile-first parity pass */
.page-actions{display:flex;justify-content:flex-start;margin:10px 0}.add-panel-btn{margin-top:8px}
.app-dialog{border:0;padding:0;background:transparent;width:min(560px,calc(100% - 20px));max-width:none}.app-dialog::backdrop{background:rgba(14,23,42,.60);backdrop-filter:blur(4px)}.dialog-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:0 25px 80px rgba(15,23,42,.22)}.dialog-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.dialog-head b,.dialog-head small{display:block}.dialog-head small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.7}.icon-btn{min-width:38px;padding:4px;font-size:20px}.excel-note{margin:0 0 8px}.excel-client-status{grid-column:1/-1;margin:0}
@media(max-width:700px){
  .content{padding:7px 7px 84px}
  .topbar{padding:7px 8px}.topbar b{font-size:17px}.topbar small{font-size:9px}
  .hero{padding:14px;border-radius:15px}.hero h1{font-size:19px}.hero p{font-size:11px;line-height:1.7}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stat{padding:10px;border-radius:13px}.stat span{font-size:10px}.stat b{font-size:17px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.grid>.card{padding:10px}.grid>.card h2{font-size:14px}.grid>.card p{font-size:10px;line-height:1.7}
  .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.quick-card{padding:9px 4px;border-radius:12px;text-align:center;min-width:0}.quick-card>span{font-size:19px;margin-bottom:4px}.quick-card b{font-size:9px;line-height:1.35}.quick-card small{display:none}
  .company-box{padding:10px}.company-head{display:flex;align-items:center}.company-head h2{font-size:15px}.company-head .chips{justify-content:flex-end}.chip{font-size:8px;padding:3px 6px}
  .panel-row{display:flex;align-items:center;padding:9px}.panel-row b{font-size:11px}.panel-row small{font-size:8px}.panel-metrics{display:flex;white-space:nowrap;font-size:8px}
  .section-title{align-items:center}.section-title h1{font-size:18px}.section-title p{font-size:10px}
  .form-grid{grid-template-columns:1fr}.panel-top-grid{grid-template-columns:1fr}
  .health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-dialog{width:100%;max-width:none;margin:auto 0 0;align-self:end}.app-dialog[open]{position:fixed;inset:auto 0 0 0}.dialog-card{border-radius:22px 22px 0 0;padding:13px 10px calc(14px + env(safe-area-inset-bottom));max-height:92dvh;overflow:auto}
  input,select{font-size:16px!important;min-height:44px}.btn,button{min-height:40px}
  .bottomnav a{min-height:60px;padding-bottom:calc(7px + env(safe-area-inset-bottom))}
}
@media(max-width:390px){.quick-card b{font-size:8px}.stats{gap:5px}.stat{padding:9px}.company-head{gap:6px}.panel-row{gap:6px}}
