:root{--sidebar:#0f172a;--sidebar2:#111827;--primary:#0d6efd;--bg:#f4f7fb;--text:#172033}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{width:255px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));position:fixed;inset:0 auto 0 0;z-index:1040;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:22px 18px;color:#fff}.sidebar-brand small{display:block;color:#94a3b8;font-size:11px}.brand-mark{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:14px;background:#0d6efd;color:#fff;font-weight:800;letter-spacing:.5px}.brand-mark.small{width:42px;height:42px;border-radius:12px}.sidebar .nav-link{display:flex;align-items:center;gap:10px;color:#cbd5e1;border-radius:10px;margin:2px 0;padding:10px 12px}.sidebar .nav-link.active,.sidebar .nav-link:hover:not(.disabled){background:rgba(255,255,255,.1);color:#fff}.sidebar .nav-link.disabled{opacity:.55}.sidebar-footer{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.08)}.main-content{margin-left:255px;min-width:0;width:calc(100% - 255px)}.topbar{height:76px;background:#fff;border-bottom:1px solid #e8edf4;display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:1030}.content-wrap{padding:22px}.stat-card{background:#fff;border:1px solid #e9edf4;border-radius:14px;padding:18px 20px;box-shadow:0 3px 16px rgba(15,23,42,.04);height:100%}.stat-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.stat-card strong{display:block;font-size:24px;margin-top:6px}.amc-table thead th{background:#f8fafc;color:#64748b;font-size:12px;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid #e9edf4}.amc-table td{font-size:13px}.amc-table tbody tr:hover{background:#fbfdff}.status-badge{text-transform:capitalize}.modal-content{border-radius:16px}.form-label{font-weight:600;font-size:13px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#e7f0ff,transparent 34%),#f6f8fc;padding:20px}.login-card{width:min(100%,460px);border-radius:20px}.btn-action{padding:.25rem .45rem}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-item{background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;padding:12px}.detail-item small{display:block;color:#64748b;margin-bottom:4px}.detail-item strong{word-break:break-word}.section-title{font-size:13px;text-transform:uppercase;color:#64748b;letter-spacing:.04em;margin:18px 0 8px}.empty-state{padding:45px 20px;text-align:center;color:#64748b}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:.2s ease}.sidebar.show{transform:translateX(0)}.main-content{margin-left:0;width:100%}.topbar{padding:0 14px}.content-wrap{padding:14px}.topbar h4{font-size:18px}.detail-grid{grid-template-columns:1fr}}
.custom-months-box{border:1px solid #e5eaf2;background:#f8fafc;border-radius:12px;padding:14px}.custom-month-grid{display:grid;grid-template-columns:repeat(12,minmax(58px,1fr));gap:8px}.month-check{margin:0;padding:9px 8px 9px 30px;border:1px solid #e6ebf2;border-radius:9px;background:#fff;min-width:0}.month-check .form-check-label{font-size:12px;font-weight:600}@media(max-width:1199.98px){.custom-month-grid{grid-template-columns:repeat(6,1fr)}}@media(max-width:575.98px){.custom-month-grid{grid-template-columns:repeat(3,1fr)}}

/* v1.2.0 billing schedule */
.billing-pending-row td:first-child{box-shadow:inset 3px 0 0 rgba(13,110,253,.55)}
#monthlySheet .card-header{position:sticky;top:0;z-index:1}
#monthlySheet .table td,#monthlySheet .table th{font-size:.83rem}

/* v1.3.0 professional AMC operations calendar */
.calendar-stats .stat-card{border:1px solid #e9edf4}.stat-card.stat-drill{appearance:none;color:inherit;cursor:pointer}.stat-card.stat-drill:hover{border-color:#b8cff7;transform:translateY(-1px);box-shadow:0 7px 22px rgba(15,23,42,.08)}.stat-card small{display:block;color:#94a3b8;font-size:11px;margin-top:4px}.calendar-legend{align-items:center}.calendar-legend span{display:flex;align-items:center;gap:6px;white-space:nowrap}.calendar-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.calendar-loading{min-height:260px;display:flex;align-items:center;justify-content:center;gap:12px;color:#64748b}.calendar-week-header,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-week-header>div{padding:10px 12px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase;border-right:1px solid #eef2f7;border-bottom:1px solid #e9edf4}.calendar-day{min-height:150px;padding:8px;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;background:#fff;overflow:hidden}.calendar-day.is-empty{background:#fafbfc;min-height:65px}.calendar-day.is-today{background:#f6faff;box-shadow:inset 0 0 0 2px rgba(13,110,253,.15)}.calendar-day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.calendar-day-head strong{font-size:13px}.calendar-day-head span{font-size:11px;color:#94a3b8}.calendar-day-events{display:flex;flex-direction:column;gap:5px}.calendar-event{width:100%;border:0;border-left:4px solid var(--event-color);border-radius:6px;background:color-mix(in srgb,var(--event-color) 10%,white);padding:5px 6px;text-align:left;color:#263246;line-height:1.2;cursor:pointer;overflow:hidden}.calendar-event:hover{filter:brightness(.98);box-shadow:0 2px 8px rgba(15,23,42,.08)}.calendar-event span{display:block;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event small{display:block;font-size:9px;color:#64748b;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-events{border:0;background:transparent;color:#0d6efd;text-align:left;font-size:11px;padding:2px}.quarter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.quarter-month{min-height:520px;border-right:1px solid #eef2f7}.quarter-month:last-child{border-right:0}.quarter-month-head{padding:14px 14px 9px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eef2f7}.quarter-month-head button{border:0;background:transparent;font-weight:800;color:#172033;padding:0}.quarter-month-head span{font-size:11px;color:#94a3b8}.quarter-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid #eef2f7}.quarter-totals span{font-size:10px;color:#64748b}.quarter-totals b{display:block;color:#172033;font-size:11px;margin-top:2px}.quarter-events{padding:8px}.quarter-row{display:grid;grid-template-columns:8px 24px minmax(0,1fr);gap:5px;align-items:start;margin-bottom:5px}.event-dot{width:7px;height:7px;border-radius:50%;margin-top:8px}.quarter-row .date{font-size:10px;color:#94a3b8;margin-top:6px}.quarter-row .calendar-event{border-left-width:3px}.year-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px}.year-month-card{border:1px solid #e8edf4;border-radius:13px;background:#fff;padding:14px;text-align:left;transition:.15s;min-height:170px}.year-month-card:hover{border-color:#a9c6f7;box-shadow:0 6px 22px rgba(15,23,42,.07);transform:translateY(-1px)}.year-month-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.year-month-title strong{font-size:16px}.year-month-title span{font-size:11px;color:#94a3b8}.year-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.year-metrics span{font-size:9px;color:#64748b;text-transform:uppercase}.year-metrics b{display:block;font-size:15px;color:#172033;margin-top:3px}.year-money{margin-top:14px;padding-top:10px;border-top:1px dashed #e5eaf2}.year-money small{display:block;color:#94a3b8;font-size:10px}.year-money strong{display:block;font-size:16px;margin:2px 0}.col-span-all{grid-column:1/-1}.form-control-color{height:38px!important;padding:.25rem}
@media(max-width:1199.98px){.year-grid{grid-template-columns:repeat(3,1fr)}.quarter-grid{grid-template-columns:1fr}.quarter-month{border-right:0;border-bottom:1px solid #eef2f7;min-height:auto}.calendar-topbar{height:auto;min-height:76px;padding-top:10px;padding-bottom:10px}}
@media(max-width:767.98px){.year-grid{grid-template-columns:repeat(2,1fr);padding:10px}.calendar-week-header>div{padding:8px 4px;text-align:center;font-size:10px}.calendar-day{min-height:105px;padding:4px}.calendar-event{padding:4px;border-left-width:3px}.calendar-event span{font-size:9px}.calendar-event small{display:none}.calendar-day-events{gap:3px}.calendar-legend{display:none!important}}
@media(max-width:575.98px){.year-grid{grid-template-columns:1fr}.calendar-day{min-height:85px}.calendar-event span{max-width:62px}.calendar-day-head strong{font-size:11px}}
.period-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:#fbfcfe}.period-summary span{padding:10px 14px;border-right:1px solid #eef2f7}.period-summary span:last-child{border-right:0}.period-summary small{display:block;color:#94a3b8;font-size:9px;text-transform:uppercase}.period-summary b{display:block;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:991.98px){.period-summary{grid-template-columns:repeat(3,1fr)}.period-summary span:nth-child(3){border-right:0}}@media(max-width:575.98px){.period-summary{grid-template-columns:repeat(2,1fr)}.period-summary span:nth-child(3){border-right:1px solid #eef2f7}.period-summary span:nth-child(even){border-right:0}}

/* v1.7.0 AMC lifecycle & dependency management */
.renewal-stats .stat-card{border:1px solid #e9edf4}.renewal-history-item{border-left:3px solid #dbe7fb;padding:10px 12px;margin-bottom:10px;background:#fbfcfe;border-radius:0 10px 10px 0}.notification-card{border:1px solid #e8edf4;border-radius:12px;padding:14px;margin-bottom:10px;background:#fff}.notification-card.is-unread{border-left:4px solid #dc3545;background:#fffafb}.timeline-list{max-height:360px;overflow:auto}.renewal-stats .stat-card strong{font-size:22px}@media(max-width:575.98px){.renewal-stats .stat-card{padding:14px}.renewal-stats .stat-card strong{font-size:19px}}

/* v1.8.0 advanced dashboard, reports and exports */
.report-year-select{width:94px}.reports-topbar{height:auto;min-height:76px;padding-top:10px;padding-bottom:10px}.report-kpis .stat-card strong{font-size:20px}.report-summary-strip{display:flex;flex-wrap:wrap;background:#fbfcfe;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7}.report-summary-strip span{padding:10px 16px;border-right:1px solid #eef2f7;min-width:130px}.report-summary-strip small{display:block;color:#94a3b8;font-size:9px;text-transform:uppercase}.report-summary-strip b{display:block;font-size:13px;margin-top:2px}.report-table th,.report-table td{white-space:nowrap}.report-trend-row{display:grid;grid-template-columns:38px minmax(0,1fr) 115px;gap:10px;align-items:center;margin:7px 0}.report-month{font-size:11px;font-weight:700;color:#64748b}.report-bars{height:18px;position:relative;background:#f4f6f9;border-radius:7px;overflow:hidden}.report-bar{position:absolute;left:0;height:5px;border-radius:4px;min-width:2px}.report-bar.scheduled{top:1px;background:#94a3b8}.report-bar.invoiced{top:7px;background:#0d6efd}.report-bar.paid{top:13px;background:#198754}.report-trend-value{text-align:right;font-size:11px;font-weight:700}.report-trend-legend{display:flex;gap:16px;justify-content:flex-end;border-top:1px dashed #e6ebf2;margin-top:12px;padding-top:10px;font-size:10px;color:#64748b}.report-trend-legend span{display:flex;align-items:center;gap:5px}.report-trend-legend i{display:block;width:10px;height:4px;border-radius:3px}.report-trend-legend i.scheduled{background:#94a3b8}.report-trend-legend i.invoiced{background:#0d6efd}.report-trend-legend i.paid{background:#198754}@media(max-width:767.98px){.report-trend-row{grid-template-columns:32px minmax(0,1fr) 82px}.report-trend-value{font-size:9px}.report-summary-strip span{min-width:110px;padding:9px 12px}.report-kpis .stat-card{padding:14px}.report-kpis .stat-card strong{font-size:17px}}

/* v1.9.0 system hardening, maintenance and audit center */
.system-topbar{height:auto;min-height:76px;padding-top:10px;padding-bottom:10px}.system-health-grid .stat-card strong{font-size:18px}.system-check-list{display:grid;gap:12px}.system-check-list>div{display:flex;gap:12px;align-items:flex-start;border:1px solid #e9edf4;background:#fbfcfe;border-radius:12px;padding:12px}.system-check-list i{font-size:20px;color:#198754;line-height:1.2}.system-check-list span{min-width:0}.system-check-list b{display:block;font-size:13px}.system-check-list small{display:block;color:#64748b;margin-top:2px}.audit-json{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;white-space:pre-wrap;word-break:break-word;min-height:130px;max-height:440px;overflow:auto;font-size:12px}.maintenance-action{padding:.7rem .85rem}.system-health-grid .stat-card small{white-space:normal}.card-header strong{font-weight:700}@media(max-width:767.98px){.system-health-grid .stat-card strong{font-size:16px}.system-check-list>div{padding:10px}}

/* v1.9.0 Admin & Migration Center patch */
.sidebar-section-label{padding:14px 12px 5px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.admin-kpi .stat-card strong{font-size:20px}.admin-link-card{display:flex;align-items:flex-start;gap:14px;padding:16px;border:1px solid #e7ecf3;border-radius:14px;background:#fff;color:inherit;text-decoration:none;height:100%;transition:.15s}.admin-link-card:hover{border-color:#b8cff7;box-shadow:0 7px 22px rgba(15,23,42,.07);transform:translateY(-1px)}.admin-link-card .icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f0f5ff;color:#0d6efd;font-size:20px;flex:0 0 auto}.admin-link-card strong{display:block}.admin-link-card small{display:block;color:#64748b;margin-top:3px;line-height:1.4}.migration-status-pill{min-width:88px}.migration-table td,.migration-table th{vertical-align:middle}.migration-file{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.migration-checksum{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:#94a3b8;word-break:break-all}.permission-group{border:1px solid #e7ecf3;border-radius:12px;background:#fff;overflow:hidden}.permission-group-title{padding:10px 12px;background:#f8fafc;border-bottom:1px solid #e7ecf3;font-weight:700;font-size:13px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.permission-item{padding:10px 12px;border-bottom:1px solid #eef2f7}.permission-item:nth-child(odd){border-right:1px solid #eef2f7}.admin-muted-box{background:#f8fafc;border:1px solid #e8edf4;border-radius:12px;padding:14px}.code-chip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:2px 6px;font-size:11px}.update-history-note{max-width:420px;white-space:normal}.admin-table th,.admin-table td{white-space:nowrap}.admin-table td.wrap{white-space:normal}.migration-warning{border-left:4px solid #ffc107}.migration-danger{border-left:4px solid #dc3545}@media(max-width:767.98px){.permission-grid{grid-template-columns:1fr}.permission-item:nth-child(odd){border-right:0}.admin-link-card{padding:13px}.migration-table{font-size:12px}}

/* P2 master-data navigation & mobile shell hardening */
.sidebar-section-label{padding:14px 12px 6px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.sidebar{overflow-y:auto;overscroll-behavior:contain}.sidebar-brand{flex:0 0 auto}.sidebar-footer{flex:0 0 auto;background:linear-gradient(180deg,rgba(15,23,42,.3),rgba(15,23,42,.75));position:sticky;bottom:0}.sidebar-mobile-close{position:absolute;top:14px;right:12px;width:38px;height:38px;border:0;border-radius:10px;background:rgba(255,255,255,.09);color:#fff;display:grid;place-items:center;z-index:2}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(2,6,23,.58);z-index:1035;backdrop-filter:blur(1px)}.sidebar-backdrop.show{display:block}body.sidebar-open{overflow:hidden}.master-toolbar{display:flex;gap:.5rem;align-items:end}.security-check{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #e8edf4;border-radius:12px;background:#fff}.security-check .icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}.security-check.ok .icon{background:#e9f8ef;color:#16803c}.security-check.warn .icon{background:#fff4e5;color:#9a5b00}.quick-action-card{display:block;text-decoration:none;color:inherit;border:1px solid #e8edf4;border-radius:14px;background:#fff;padding:16px;height:100%;transition:.15s}.quick-action-card:hover{transform:translateY(-1px);border-color:#b8cff7;box-shadow:0 7px 20px rgba(15,23,42,.06)}.quick-action-card i{font-size:1.4rem}.dashboard-list-row{padding:10px 0;border-bottom:1px solid #eef2f7}.dashboard-list-row:last-child{border-bottom:0}
@media(max-width:991.98px){.sidebar{width:min(86vw,320px);box-shadow:18px 0 45px rgba(2,6,23,.28)}.sidebar.show{transform:translateX(0)}.sidebar .nav-link{padding:11px 13px}.sidebar-brand{padding-right:58px}.topbar{min-height:70px;height:auto;padding-top:10px;padding-bottom:10px}.topbar>div:nth-child(2){min-width:0}.topbar h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content-wrap{padding:12px}.card{border-radius:12px}.table-responsive{-webkit-overflow-scrolling:touch}.sidebar-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}}
@media(max-width:575.98px){.topbar .ms-auto .btn{white-space:nowrap}.stat-card{padding:14px}.stat-card strong{font-size:20px}}
