:root{--ink:#17251f;--muted:#718078;--line:#e5ebe7;--bg:#f4f7f5;--panel:#fff;--green:#1c7654;--green-dark:#14543d;--green-soft:#e9f5ef;--amber:#bd7b1c;--amber-soft:#fff4df;--red:#b84040;--red-soft:#fff0ef;--blue:#4d6f9c;--blue-soft:#edf3fb;--shadow:0 10px 30px rgba(25,48,37,.07);--radius:16px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif}body{font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--green)}.hidden{display:none!important}.muted{color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:700;color:#8a9890;margin:0 0 8px}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(400px,1fr) minmax(360px,.9fr);background:#fff}.login-card{width:min(460px,calc(100% - 48px));margin:auto;padding:52px 0}.brand-lockup{display:flex;align-items:center;gap:12px;margin-bottom:48px}.brand-lockup strong{display:block;font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;letter-spacing:.08em}.brand-lockup span{display:block;color:#88968f;font-size:11px;margin-top:3px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--green-dark);color:#fff;font:800 15px Manrope,sans-serif;letter-spacing:-.04em;box-shadow:0 5px 14px rgba(20,84,61,.2)}.login-card h1{font:800 clamp(28px,4vw,38px)/1.18 Manrope,sans-serif;letter-spacing:-.045em;margin:10px 0 12px;max-width:430px}.stack-form{display:grid;gap:16px;margin-top:28px}.stack-form label,.field label{display:grid;gap:7px;color:#53625a;font-size:12px;font-weight:700}.stack-form input,.field input,.field select,.field textarea,.filter-field input,.filter-field select{width:100%;border:1px solid #dfe7e2;border-radius:10px;padding:12px 13px;background:#fff;color:var(--ink);outline:none;transition:border .15s,box-shadow .15s}.stack-form input:focus,.field input:focus,.field select:focus,.field textarea:focus,.filter-field input:focus,.filter-field select:focus{border-color:#65a98a;box-shadow:0 0 0 3px rgba(28,118,84,.1)}.stack-form small{font-weight:400;color:var(--muted)}.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .15s,background .15s;min-height:42px}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-secondary{background:#edf4ef;color:var(--green-dark)}.btn-quiet{background:transparent;color:#68776f}.btn-quiet:hover{background:#f0f4f1}.btn-small{min-height:34px;padding:8px 11px;font-size:12px}.btn-danger{background:var(--red-soft);color:var(--red)}.btn-block{width:100%}.form-message{font-size:12px;min-height:16px;margin:0;color:var(--red)}.form-message.success{color:var(--green)}.login-footnote{font-size:11px;color:#9aa59f;margin-top:30px}.login-aside{position:relative;overflow:hidden;background:#142c22;color:#fff;padding:70px clamp(35px,7vw,100px);display:flex;flex-direction:column;justify-content:center}.login-aside .eyebrow{color:#9abca9}.login-aside h2{font:800 clamp(34px,4.5vw,54px)/1.15 Manrope,sans-serif;letter-spacing:-.05em;margin:14px 0 20px;position:relative;z-index:1}.login-aside>p:last-child{color:#b8c9c0;max-width:330px;line-height:1.7;position:relative;z-index:1}.aside-orb{position:absolute;border:1px solid rgba(191,229,208,.12);border-radius:50%;pointer-events:none}.orb-one{width:480px;height:480px;right:-190px;top:-100px}.orb-two{width:320px;height:320px;right:-110px;top:-20px;background:radial-gradient(circle,rgba(76,149,108,.18),transparent 70%);border:0}
.app-layout{min-height:100vh;display:flex}.sidebar{width:248px;background:#14281f;color:#eaf2ed;display:flex;flex-direction:column;flex-shrink:0;padding:27px 18px 18px;min-height:100vh}.sidebar-brand{margin:0 8px 48px}.sidebar-brand .brand-mark{background:#286e4e}.sidebar-brand strong{color:#f6fbf8}.sidebar-brand span{color:#96aa9e}.side-section-label{font-size:9px;letter-spacing:.16em;color:#71887b;font-weight:700;padding:0 12px;margin-bottom:12px}.main-nav{display:grid;gap:5px}.nav-link{border:0;background:transparent;color:#adc0b5;text-align:left;padding:12px 13px;border-radius:10px;display:flex;align-items:center;gap:12px;font-weight:600;font-size:13px}.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}.nav-link.active{background:#234b38;color:#fff;box-shadow:inset 3px 0 #77bf98}.nav-icon{width:17px;text-align:center;font-size:16px;opacity:.9}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;color:#789083}.secure-mark{font-size:10px;display:flex;align-items:center;gap:8px}.secure-mark span{width:6px;height:6px;border-radius:50%;background:#69bd8c;box-shadow:0 0 0 4px rgba(105,189,140,.12)}.sidebar-version{font-size:9px;margin-top:12px;color:#657c6e}.main-area{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:78px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.topbar-heading .eyebrow{font-size:9px;margin-bottom:3px}.topbar-heading strong{font:700 17px Manrope,sans-serif}.topbar-user{display:flex;align-items:center;gap:10px}.user-avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#e2f0e7;color:var(--green-dark);font:800 11px Manrope,sans-serif}.user-meta strong{display:block;font-size:11px}.user-meta span{display:block;color:#849189;font-size:10px;margin-top:2px;text-transform:capitalize}.page-content{padding:30px 34px 26px;flex:1;max-width:1600px;width:100%;margin:0 auto}.app-footer{display:flex;justify-content:space-between;padding:14px 34px 20px;color:#9aa59f;font-size:10px}.mobile-menu{display:none!important}.page-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-intro h1{font:800 25px/1.2 Manrope,sans-serif;letter-spacing:-.04em;margin:0 0 7px}.page-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.intro-date{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:10px;color:#637168;font-size:11px;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;min-height:117px;box-shadow:0 3px 14px rgba(25,48,37,.025)}.stat-head{display:flex;align-items:center;justify-content:space-between;color:#7c8982;font-size:11px;font-weight:600}.stat-icon{width:29px;height:29px;display:grid;place-items:center;background:#eff5f1;border-radius:9px;font-size:14px}.stat-value{font:800 27px Manrope,sans-serif;letter-spacing:-.05em;margin:12px 0 3px}.stat-note{color:#98a39d;font-size:10px}.stat-card.alert .stat-icon{background:var(--red-soft)}.stat-card.alert .stat-value{color:var(--red)}.stat-card.warn .stat-icon{background:var(--amber-soft)}.stat-card.warn .stat-value{color:var(--amber)}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 3px 14px rgba(25,48,37,.025);margin-bottom:17px;min-width:0}.panel-header{padding:17px 19px;border-bottom:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-title{font:700 13px Manrope,sans-serif;margin:0}.panel-subtitle{font-size:10px;color:#96a19a;margin-top:4px}.panel-body{padding:18px 19px}.filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.filter-field{min-width:140px;flex:1;display:grid;gap:6px;color:#7c8982;font-size:10px;font-weight:700}.filter-field input,.filter-field select{padding:9px 10px;font-size:11px}.filter-actions{display:flex;gap:8px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:740px}.data-table th{text-align:left;background:#fafcfb;color:#87948c;text-transform:uppercase;letter-spacing:.08em;font-size:9px;padding:12px 15px;white-space:nowrap}.data-table td{border-top:1px solid #edf1ee;padding:13px 15px;color:#46564d;font-size:11px;vertical-align:middle}.data-table tbody tr:hover{background:#fbfdfc}.primary-cell{font-weight:700;color:#25382e!important}.secondary-cell{display:block;color:#99a49d;font-size:10px;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:5px 8px;font-size:9px;font-weight:700;white-space:nowrap}.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.badge-green{color:#25744f;background:#eaf6ee}.badge-amber{color:#a86b17;background:#fff4df}.badge-red{color:#b33e3e;background:#fff0ef}.badge-grey{color:#738078;background:#f0f3f1}.badge-blue{color:#486c9a;background:#edf3fb}.progress-line{height:5px;background:#edf2ee;border-radius:10px;overflow:hidden;min-width:75px;margin-top:5px}.progress-line span{display:block;height:100%;background:#4a9d70;border-radius:10px}.table-progress{min-width:90px}.issue-list{display:grid;gap:10px}.issue-item{border:1px solid #edf1ee;border-radius:11px;padding:13px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}.severity-bar{width:4px;align-self:stretch;border-radius:5px;background:#c0c9c3}.severity-bar.critical{background:#cf5550}.severity-bar.medium{background:#d79a3d}.severity-bar.low{background:#76a98b}.issue-title{font-size:11px;font-weight:700;color:#2e4036}.issue-desc{font-size:10px;line-height:1.55;color:#849088;margin-top:4px}.issue-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.issue-side{text-align:right;font-size:10px;color:#96a19a;white-space:nowrap}.empty-state{padding:30px 15px;text-align:center;color:#8b9890;font-size:11px}.empty-state strong{display:block;color:#59685f;font:700 13px Manrope,sans-serif;margin-bottom:5px}.section-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.85fr);gap:17px;align-items:start}.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:grid;gap:7px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px}.field input,.field select,.field textarea{font-size:12px;padding:11px 12px}.field textarea{min-height:78px;resize:vertical;line-height:1.5}.field-hint{font-size:10px;color:#9aa49e;font-weight:400}.required{color:var(--red)}.plan-stack{display:grid;gap:12px}.plan-card{border:1px solid #e6ede8;border-radius:13px;padding:15px;background:#fcfefd}.plan-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.plan-card-head strong{font:700 12px Manrope,sans-serif}.plan-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.plan-card .field.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin-top:18px}.info-strip{background:#f0f7f2;border:1px solid #dcece1;border-radius:11px;padding:12px 14px;color:#4b6b58;font-size:11px;line-height:1.6;margin-bottom:17px}.warning-strip{background:#fff7e9;border:1px solid #f2e5ca;border-radius:11px;padding:12px 14px;color:#8e651e;font-size:11px;line-height:1.6;margin-bottom:17px}.today-status{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:14px 16px;border-radius:13px;margin-bottom:18px}.today-status-icon{width:38px;height:38px;border-radius:11px;background:#eaf5ee;color:var(--green);display:grid;place-items:center;font-size:18px}.today-status strong{font-size:12px;display:block}.today-status span{font-size:10px;color:#8d9a92;display:block;margin-top:4px}.today-status .badge{margin-left:auto}.result-card{border:1px solid #e6ede8;border-radius:13px;padding:15px;margin-bottom:12px;background:#fff}.result-card h3{font:700 12px Manrope,sans-serif;margin:0 0 5px}.result-card .plan-target{color:#8a978f;font-size:10px;line-height:1.5;margin-bottom:13px}.result-divider{border-top:1px dashed #e2e9e4;margin:14px 0}.issue-toggle{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#58685e;margin-top:13px}.issue-fields{margin-top:12px;padding:13px;border-radius:10px;background:#faf7f2;border:1px solid #f0e8da}.readonly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.readonly-item{padding:11px;background:#f7faf8;border-radius:10px}.readonly-item span{display:block;color:#98a49d;font-size:9px}.readonly-item strong{display:block;font:700 15px Manrope,sans-serif;margin-top:6px}.history-summary{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.user-form{max-width:760px}.user-list{display:grid;gap:7px}.user-row{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid #edf1ee;border-radius:10px}.user-row strong{font-size:11px}.user-row span{display:block;color:#96a19a;font-size:10px;margin-top:3px}.toast-region{position:fixed;right:20px;bottom:20px;z-index:20;display:grid;gap:8px}.toast{max-width:min(360px,calc(100vw - 40px));background:#203b2d;color:#fff;border-radius:10px;padding:12px 15px;font-size:11px;box-shadow:var(--shadow);animation:toastin .2s ease}.toast.error{background:#933c3c}.toast.warning{background:#805b20}@keyframes toastin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{height:100px;border-radius:13px;background:linear-gradient(90deg,#eef2ef,#f7faf8,#eef2ef);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}.login-body,.install-body{background:#eff4f0;min-height:100vh;display:grid;place-items:center}.install-card{background:#fff;border-radius:18px;padding:35px;box-shadow:var(--shadow);width:min(500px,calc(100% - 32px))}.install-card .brand-mark{margin-bottom:20px}.install-card h1{font:800 25px Manrope,sans-serif;margin:5px 0}.text-link{display:inline-block;margin-top:17px;font-size:11px;text-decoration:none;font-weight:700}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-grid{grid-template-columns:1fr}.page-content{padding:25px 22px}.topbar{padding:0 22px}.app-footer{padding-left:22px;padding-right:22px}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-card{padding:35px 0}.login-aside{display:none}.sidebar{position:fixed;z-index:12;left:0;top:0;bottom:0;transform:translateX(-105%);transition:transform .2s;box-shadow:15px 0 35px rgba(0,0,0,.15)}.sidebar.open{transform:translateX(0)}.mobile-menu{display:inline-flex!important}.topbar{height:68px;padding:0 15px;gap:10px}.topbar-heading{margin-right:auto}.topbar-heading .eyebrow{display:none}.user-meta{display:none}.topbar-user{gap:7px}.page-content{padding:20px 14px}.app-footer{padding:12px 14px 17px;gap:10px;flex-wrap:wrap;font-size:9px}.stat-grid{gap:9px}.stat-card{padding:13px;min-height:105px}.stat-value{font-size:24px}.page-intro{display:block}.intro-date{display:inline-block;margin-top:12px}.form-grid,.plan-card-grid,.content-grid{grid-template-columns:1fr}.field.full,.plan-card .field.full{grid-column:auto}.readonly-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-header,.panel-body{padding-left:14px;padding-right:14px}.filter-field{min-width:calc(50% - 8px)}.filter-actions{width:100%}.filter-actions .btn{flex:1}.issue-item{grid-template-columns:4px 1fr}.issue-side{grid-column:2;text-align:left}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .btn{width:100%}.toast-region{right:12px;bottom:12px}}
@media(max-width:390px){.stat-grid{grid-template-columns:1fr 1fr}.stat-head{font-size:10px}.stat-value{font-size:22px}.filter-field{min-width:100%}.readonly-grid{grid-template-columns:1fr 1fr}}
.modal-backdrop{position:fixed;inset:0;background:rgba(14,29,21,.56);z-index:30;padding:24px;display:grid;place-items:center;backdrop-filter:blur(3px)}.detail-modal{background:#fff;border-radius:18px;width:min(900px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.22)}.detail-modal-head{padding:20px 23px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detail-modal-head h2{font:800 19px Manrope,sans-serif;margin:4px 0}.detail-modal-head p:last-child{font-size:10px;color:#8a978f;margin:0}.icon-button{border:1px solid var(--line);background:#fff;border-radius:9px;width:34px;height:34px;color:#66756c}.detail-modal-body{padding:20px 23px;overflow:auto}.detail-notes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.detail-notes>div{background:#f7faf8;border-radius:10px;padding:12px}.detail-notes span,.detail-grid span{display:block;color:#92a097;font-size:9px;margin-bottom:6px}.detail-notes p{font-size:11px;line-height:1.6;margin:0;color:#47584e}.detail-section-title{font:700 13px Manrope,sans-serif;margin:20px 0 10px}.detail-plan,.detail-issue{border:1px solid #e7eee9;border-radius:12px;padding:14px;margin-bottom:10px}.detail-plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.detail-plan-head h3{font:700 12px Manrope,sans-serif;margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-grid>div{min-width:0}.detail-grid strong{display:block;color:#4d5c53;font-size:10px;line-height:1.55;font-weight:600;overflow-wrap:anywhere}.detail-grid .wide{grid-column:1/-1}.detail-issue>p{font-size:10px;color:#6f7d75;line-height:1.6}.detail-followup{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:10px;margin-top:10px;font-size:10px}.detail-followup span{color:#87948c}.icon-button:hover{background:#f5f8f6}
@media(max-width:600px){.modal-backdrop{padding:8px}.detail-modal{max-height:94vh;border-radius:13px}.detail-modal-head,.detail-modal-body{padding:15px}.detail-notes,.detail-grid{grid-template-columns:1fr}.detail-grid .wide{grid-column:auto}}
