:root{
  --green:#173f35;--green-2:#225c4d;--lime:#b9e85f;--lime-2:#d7f79b;--ink:#16201d;--muted:#63716c;--line:#d9e3df;--bg:#f5f8f6;--card:#ffffff;--danger:#b42318;--warn:#925600;--ok:#087443;--blue:#2457a6;
  --shadow:0 16px 40px rgba(20,42,36,.10);--radius:18px;--radius-sm:10px;--focus:0 0 0 3px rgba(185,232,95,.55);
}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--green-2);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.tiny{font-size:.82rem}.hidden{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line);border-radius:999px;padding:.72rem 1rem;background:#fff;color:var(--ink);font-weight:750;text-decoration:none;transition:.16s ease;min-height:42px}.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 16px rgba(17,40,34,.08)}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.secondary{background:var(--lime-2);border-color:#c4e774;color:#1c3c2f}.btn.ghost{background:transparent}.btn.small{padding:.48rem .72rem;min-height:34px;font-size:.9rem}.btn.danger{background:#fff4f2;color:var(--danger);border-color:#f4c7c0}.btn.wide{width:100%}.btn.icon{width:36px;height:36px;padding:0;border-radius:10px}.button-row{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.right{margin-left:auto}.stack{display:grid;gap:1rem}.notice{padding:1rem;border-radius:14px;border:1px solid var(--line);background:#fff;margin:1rem 0}.notice.success{background:#eefbf3;border-color:#bfe7cb;color:var(--ok)}.notice.danger{background:#fff1f0;border-color:#fac7c3;color:var(--danger)}.notice.warn{background:#fff8e7;border-color:#f5d78c;color:var(--warn)}
.login-page,.installer-page{display:grid;place-items:center;min-height:100%;padding:2rem;background:radial-gradient(circle at top left,#eaf7d3,transparent 32rem),linear-gradient(135deg,#f6faf8,#edf4f0)}.login-card,.install-card{width:min(100%,520px);background:rgba(255,255,255,.94);border:1px solid rgba(217,227,223,.8);box-shadow:var(--shadow);border-radius:28px;padding:2rem}.install-card{width:min(100%,820px)}.wide-card{width:min(100%,1020px)}.brand-mark{width:58px;height:58px;border-radius:18px;background:var(--green);color:var(--lime);display:grid;place-items:center;font-weight:900;letter-spacing:.04em;margin-bottom:1rem}.login-card h1,.install-card h1{margin:.2rem 0 .4rem}.login-form,.full-form{display:grid;gap:1rem}.full-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.full-form .wide,.full-form>button{grid-column:1/-1}.form-section{background:#fbfdfc;border:1px solid var(--line);border-radius:18px;padding:1rem;display:grid;gap:.85rem}.form-section h2{font-size:1rem;margin:0;color:var(--green)}label{display:grid;gap:.38rem;font-weight:750;color:#20352f}input,select,textarea{width:100%;border:1px solid #cddbd6;background:#fff;border-radius:12px;padding:.75rem .85rem;color:var(--ink);outline:0}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{box-shadow:var(--focus);outline:0}label small{font-weight:500;color:var(--muted)}
.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:var(--green);color:white;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:1rem}.app-logo{display:grid;grid-template-columns:46px 1fr;grid-template-rows:1fr 1fr;align-items:center;gap:0 .7rem;color:white;text-decoration:none;padding:.5rem .4rem .9rem;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:.7rem}.app-logo span{grid-row:1/3;width:46px;height:46px;border-radius:14px;background:var(--lime);color:var(--green);display:grid;place-items:center;font-weight:950}.app-logo strong{font-size:1.12rem;line-height:1}.app-logo small{color:#d9f7b2}.nav{display:grid;gap:.35rem;overflow:auto;padding-right:.2rem}.nav-group-title{margin:1rem .7rem .25rem;color:#b9d1ca;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:900}.nav a{display:flex;align-items:center;gap:.7rem;color:#edf8f4;padding:.68rem .75rem;border-radius:14px;text-decoration:none;font-weight:700}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12)}.nav a.active{box-shadow:inset 4px 0 0 var(--lime);color:#fff}.nav .nav-icon{width:24px;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding-top:1rem;display:grid;gap:.8rem}.user-chip{display:grid;gap:.15rem;font-size:.9rem}.user-chip span{color:#c7ded6;font-size:.8rem;word-break:break-all}.main-panel{min-width:0}.topbar{position:sticky;top:0;z-index:10;height:72px;background:rgba(245,248,246,.86);backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;padding:1rem 1.4rem;border-bottom:1px solid rgba(217,227,223,.85)}.tenant-name{font-weight:900;color:var(--green);font-size:1.05rem}.hamburger{display:none;border:0;background:transparent;font-size:1.4rem;margin-right:.5rem}.top-actions{display:flex;gap:.6rem}.view{padding:1.4rem;max-width:1500px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}.page-head h1{margin:0;font-size:clamp(1.55rem,3vw,2.35rem);letter-spacing:-.035em}.page-head p{margin:.35rem 0 0;color:var(--muted)}.grid{display:grid;gap:1rem}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(31,57,50,.06);padding:1rem}.card h2,.card h3{margin-top:0}.metric{padding:1rem;border-radius:18px;background:linear-gradient(135deg,#fff,#f6fbf8);border:1px solid var(--line)}.metric b{display:block;font-size:2rem;letter-spacing:-.04em;color:var(--green)}.metric span{color:var(--muted);font-weight:750}.toolbar{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;align-items:center}.toolbar input,.toolbar select{max-width:270px}.data-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:.94rem}.data-table th{position:sticky;top:0;background:#f8fbf9;color:#36534b;text-align:left;padding:.78rem;border-bottom:1px solid var(--line);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:.78rem;border-bottom:1px solid #eef3f1;vertical-align:top}.data-table tr:hover td{background:#fcfffb}.row-actions{display:flex;gap:.4rem;justify-content:flex-end;white-space:nowrap}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:.23rem .55rem;background:#edf4f0;color:#325047;font-weight:800;font-size:.78rem}.pill.ok{background:#e6f7ee;color:#087443}.pill.warn{background:#fff5d5;color:#805400}.pill.danger{background:#fff0ed;color:#b42318}.pill.blue{background:#edf4ff;color:#2457a6}.empty-state{text-align:center;padding:2.4rem;background:#fff;border:1px dashed #bdd1ca;border-radius:20px;color:var(--muted)}.empty-state strong{display:block;color:var(--green);font-size:1.15rem;margin-bottom:.25rem}.workspace-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.workspace-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.55rem .8rem;font-weight:800}.workspace-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.detail-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.detail-title h1{margin:0}.form-page{display:grid;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .span-2{grid-column:1/-1}.form-footer{position:sticky;bottom:0;background:rgba(245,248,246,.9);backdrop-filter:blur(8px);display:flex;gap:.7rem;justify-content:flex-end;padding:1rem;border:1px solid var(--line);border-radius:18px;margin-top:1rem}.help-text{background:#f7fbef;border:1px solid #d7ee93;border-radius:16px;padding:.85rem;color:#375333}.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.kanban-col{background:#fff;border:1px solid var(--line);border-radius:18px;padding:.8rem}.kanban-col h3{margin:.2rem 0 .8rem}.task-card{border:1px solid #e8efec;border-radius:14px;padding:.75rem;margin-bottom:.6rem;background:#fcfffd}.calendar-list{display:grid;gap:.7rem}.event-row{display:grid;grid-template-columns:170px 1fr auto;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:.8rem}.event-time{font-weight:900;color:var(--green)}.split{display:grid;grid-template-columns:2fr 1fr;gap:1rem}.command-palette{display:flex;gap:.6rem;flex-wrap:wrap}.danger-zone{border-color:#ffc9c1;background:#fff8f7}.pre{white-space:pre-wrap;background:#10261f;color:#eaf7d3;padding:1rem;border-radius:16px;overflow:auto}.stat-list{display:grid;gap:.55rem}.stat-list div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #eef3f1;padding-bottom:.5rem}.stat-list span{color:var(--muted)}
@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:290px;z-index:40;transform:translateX(-105%);transition:.18s ease}.sidebar.open{transform:none}.hamburger{display:inline-block}.top-actions{display:none}.grid.cols-4,.grid.cols-3,.grid.cols-2,.split,.kanban{grid-template-columns:1fr}.form-grid,.full-form{grid-template-columns:1fr}.event-row{grid-template-columns:1fr}.view{padding:1rem}.page-head{display:grid}.form-footer{justify-content:stretch}.form-footer .btn{flex:1}}
@media print{.sidebar,.topbar,.toolbar,.form-footer,.btn{display:none!important}.app-shell{display:block}.view{padding:0}.card,.data-wrap{box-shadow:none;border-color:#ccc}}
