/* Novotel AAFF Professional 2.0 — no remote fonts or chart services. */
:root{--navy:#102949;--navy-2:#18365d;--blue:#2367dc;--blue-soft:#edf3ff;--background:#f3f5f9;--line:#e5eaf1;--ink:#24344b;--muted:#66758b;--radius:16px;--shadow:0 4px 20px #162e4910;font-family:Inter,"Segoe UI",Arial,sans-serif}
body{font-size:14px;line-height:1.5}h1{font-size:clamp(25px,2.5vw,35px);font-weight:700;letter-spacing:-1px;line-height:1.2}h2{font-size:18px;letter-spacing:-.35px}a{transition:background .15s,color .15s}button,a,input,select,textarea{outline-offset:4px}:focus-visible{outline:3px solid #ffb74d}.skip-link{position:absolute;left:15px;top:-80px;background:white;z-index:100;padding:12px}.skip-link:focus{top:10px}
.app-shell{grid-template-columns:244px minmax(0,1fr)}.sidebar{background:linear-gradient(155deg,#112c50,#0c1d37);padding:30px 18px;width:244px;border:0}.sidebar .brand{padding:0 10px 30px;gap:12px;font-size:16px}.brand-symbol{width:39px;height:42px}.nav-caption{font-size:10px;letter-spacing:1.6px;color:#91a4c0;margin:14px 12px 12px;font-weight:700}.sidebar nav{gap:5px}.sidebar nav a{color:#c1cde0;padding:12px 14px;display:flex;align-items:center;gap:12px;border-radius:9px;font-size:13px;font-weight:500}.sidebar nav a:hover{background:#ffffff10;color:white}.sidebar nav a.active{background:#2b68db;color:white;box-shadow:0 5px 16px #05152f40}.nav-icon{width:22px;text-align:center;font-size:19px;line-height:1}.sidebar-user{border-top:1px solid #ffffff20;padding:20px 12px 0}.sidebar-user small{color:#9bb1d0}.sidebar-user strong{color:white}.sidebar-user .link-button{color:#b9cae2}.topbar{height:76px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);gap:20px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{margin:0 12px;color:#b0bac9}.breadcrumb strong{font-weight:600;color:var(--navy)}.top-search{display:flex;margin-left:auto;position:relative;width:min(340px,35vw)}.top-search input{background:#f6f8fc;border:1px solid #e9edf3;border-radius:9px;padding:10px 40px 10px 14px;font-size:12px;width:100%;min-height:40px}.top-search button{position:absolute;right:6px;top:4px;background:transparent;border:0;font-size:23px;color:#617594}.content{max-width:1700px;width:100%;padding:30px 32px 48px;margin:0 auto}.page-heading{margin-bottom:24px;align-items:center;gap:20px}.page-heading p{margin:8px 0 0;font-size:13px}.eyebrow{color:#6480a2;font-size:10px;letter-spacing:1.6px;margin-bottom:7px}.button{border:1px solid #dce3ed;border-radius:9px;font-weight:600;box-shadow:none;min-height:42px;padding:10px 16px;font-size:12px;background:white;color:#304762;white-space:normal;text-align:center}.button:hover{background:#edf3ff;border-color:#a6beef}.button-primary{background:var(--blue);border-color:var(--blue);color:white}.button-primary:hover{background:#1956bf;color:white}.button-danger{color:#b42c40;background:#fff4f5;border-color:#f6d3da}.button-small{min-height:33px;padding:7px 11px;font-size:11px}.panel{border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 10px #122a4310;padding:24px;margin-bottom:22px;min-width:0;background:white}.section-heading{margin-bottom:20px}.section-heading a{font-size:12px;font-weight:600}.section-heading h2{margin:0}.welcome-banner{padding:30px 38px;background:linear-gradient(105deg,#153c72,#2368cf);border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:30px;color:white;margin-bottom:24px;position:relative;overflow:hidden;box-shadow:0 10px 25px #1e4c8d22}.welcome-banner:after{content:"";position:absolute;width:500px;height:500px;border:70px solid #ffffff05;border-radius:50%;right:-190px;top:-170px;pointer-events:none}.live-label{font-size:10px;letter-spacing:1.7px;font-weight:600;color:#c4dbff;display:flex;align-items:center;gap:8px}.live-label i{width:6px;height:6px;border-radius:50%;background:#69e1b9}.welcome-banner h2{color:white;font-size:30px;line-height:1.25;font-weight:600;margin:14px 0 10px}.welcome-banner p{color:#d4e4fc;font-size:13px;margin:0 0 20px}.banner-links{display:flex;gap:20px;font-size:12px;align-items:center}.banner-links a{color:#fff}.banner-links a:first-child{background:white;color:#245ead;padding:9px 14px;border-radius:8px;font-weight:600}.health-card{min-width:200px;text-align:center;display:grid;justify-items:center;gap:5px;z-index:1}.health-card span{font-size:11px;color:#c5dbfb}.health-card b{font-size:12px;font-weight:500}.health-ring{width:116px;height:116px;border-radius:50%;background:conic-gradient(#80ddc7 var(--progress),#ffffff24 0);display:grid;place-items:center;margin-bottom:7px}.health-ring strong{background:#205caa;border-radius:50%;width:98px;height:98px;display:grid;place-items:center;font-size:29px;letter-spacing:-1px}.stats-grid{gap:18px;margin-bottom:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{border:1px solid var(--line);border-radius:13px;background:white;padding:22px;min-width:0;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);border-top:3px solid #6595ed}.stat-card:hover{box-shadow:0 6px 20px #162e4920}.stat-card>span{font-size:12px;color:#63728a;display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-card span i{font-style:normal;background:#eef3fd;border-radius:6px;color:#4479cb;padding:1px 6px}.stat-card strong{display:block;font-size:clamp(23px,2.1vw,32px);letter-spacing:-1px;line-height:1.3;margin:13px 0 6px;color:var(--navy);overflow-wrap:anywhere}.stat-card small{font-size:11px;color:#7a8799}.stat-1{border-top-color:#28ac8a}.stat-2{border-top-color:#eba449}.stat-3{border-top-color:#9b85d8}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px}.chart-row{display:grid;grid-template-columns:1fr auto;gap:7px 15px;margin-bottom:17px;color:#42536a;font-size:12px}.chart-row strong{color:#203654;font-size:12px}.bar-track{grid-column:1/-1;height:8px;border-radius:10px;background:#f0f4fa;overflow:hidden}.bar-track i{display:block;height:100%;background:linear-gradient(90deg,#2c6cdb,#82b1fa);border-radius:10px;min-width:2px}.chart-row:nth-of-type(2n) .bar-track i{background:linear-gradient(90deg,#389b98,#86d1ba)}.attention-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #edf0f5;color:#34465e}.attention-row:last-child{border-bottom:0}.attention-row strong{font-size:12px;display:block}.attention-row small{display:block;font-size:11px;color:#7d8899;margin-top:3px}.attention-row b{background:#fff3e0;color:#996118;padding:5px 11px;border-radius:7px;font-size:13px}.attention-row:hover strong{color:var(--blue)}table{font-size:12px;width:100%}thead th{background:#f6f8fc;text-transform:none;letter-spacing:0;color:#738298;font-size:11px;border-bottom:1px solid #e5eaf2;padding:13px 12px}td{padding:14px 12px;border-bottom:1px solid #edf1f5;color:#475970}td strong{font-weight:600;color:#2b405e;font-size:12px}td small{font-size:10px;margin-top:4px}.asset-code{font-size:11px;font-weight:600}.badge{font-size:10px;padding:5px 9px;font-weight:600;border-radius:6px}.badge-success{color:#138666;background:#e8f6ee}.badge-warning{color:#94641c;background:#fff4df}.badge-danger{color:#b14f5a;background:#fcecef}.badge-neutral{color:#627089;background:#edf1f7}.table-wrap{border-radius:9px;overflow:auto}tbody tr:hover{background:#f9fbff}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:0}.control-card strong{font-size:36px;letter-spacing:-1px;color:var(--blue);font-weight:650}.control-card h2{margin-top:10px}.control-card p{min-height:45px;font-size:13px}.control-card>span{font-size:12px;font-weight:600}.control-card:hover{border-color:#87aef1}.context-card{padding:20px;background:#f3f6fb;border-radius:12px;margin:0 0 25px}.context-card p{margin:5px 0}.context-card span{font-size:12px;color:var(--muted)}.operation-form{max-width:850px}.audit-json{white-space:pre-wrap;word-break:break-word;font-size:11px;max-height:300px;overflow:auto;width:clamp(180px,28vw,500px);background:#f4f6fa;padding:12px}.finance-filter{display:flex;align-items:end;gap:15px;flex-wrap:wrap}.finance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-form{min-width:195px;display:grid;gap:10px;padding:12px 0}.finance-form input{font-size:12px}.finance-form label{font-size:11px}summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:600}.alert-info{background:#edf3ff;color:#345e9a;border:1px solid #cdddf6}.filters{gap:14px}.filters label{font-size:11px}.filters input,.filters select{min-height:42px;font-size:12px}.form-grid label{font-size:12px}input,select,textarea{border-radius:8px;border-color:#dce4ee}.form-section{padding:28px}.form-actions:not(.inline-actions){position:sticky;bottom:10px;z-index:3;background:#ffffffed;border:1px solid var(--line);border-radius:12px;padding:15px;box-shadow:var(--shadow)}.asset-photo{max-width:440px!important;margin:0 auto 24px}.asset-photo img{max-height:300px;object-fit:contain!important}.qr-card{align-self:start}.login-page{min-height:100vh}.login-visual{background:radial-gradient(ellipse at 90% 90%,#2565b4,transparent 65%),linear-gradient(145deg,#0c2343,#16365c);position:relative}.login-visual h1{font-size:clamp(38px,5vw,68px);line-height:1.1;color:white;letter-spacing:-2px}.login-form-wrap{background:#f6f8fc}.login-form{background:white;padding:42px;border:1px solid #e5eaf0;border-radius:20px;box-shadow:0 15px 45px #1232590b;max-width:470px}.login-form h2{font-size:28px}.login-form label{font-size:12px}.login-form .eyebrow{color:#4276b5}.login-form input{min-height:47px}.login-form .button{min-height:47px}.login-visual .eyebrow{color:#97c1fa}
@media(min-width:1600px){.content{padding:38px 48px}.welcome-banner{padding:35px 42px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.breadcrumb{display:none}.content{padding:24px}.top-search{width:100%;max-width:420px}.finance-stats{grid-template-columns:1fr}.app-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{width:220px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{width:244px;position:fixed;transform:translateX(-100%);z-index:30;height:100dvh;overflow:auto}.sidebar.open{transform:translateX(0)}.app-main{margin:0;width:100%}.menu-button{display:block}.topbar{padding:0 16px;height:64px;gap:12px}.topbar>.button{display:none}.content{padding:22px 16px}.page-heading{align-items:start;flex-direction:column;gap:12px}h1{font-size:27px}.welcome-banner{padding:24px;gap:15px}.welcome-banner h2{font-size:24px}.health-card{min-width:100px}.health-ring{width:88px;height:88px}.health-ring strong{width:72px;height:72px;font-size:24px}.banner-links{flex-wrap:wrap;gap:12px}.welcome-banner p{font-size:12px}.stats-grid{gap:12px}.stat-card{padding:16px}.stat-card strong{font-size:24px}.stat-card>span{font-size:11px}.panel{padding:18px}.control-grid{grid-template-columns:1fr}.login-form{padding:27px}.login-visual{display:none}.login-page{display:flex}.login-form-wrap{width:100%;padding:22px}.audit-json{width:230px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.finance-stats{grid-template-columns:1fr}}
@media(max-width:430px){.health-card{display:none}.stats-grid{grid-template-columns:1fr 1fr}.stat-card strong{font-size:21px}.stat-card small{font-size:10px}.stat-card>span i{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar,.page-heading .heading-actions,.quick-actions,.finance-filter,.button,form,.skip-link{display:none!important}.app-shell,.dashboard-grid{display:block}.app-main,.content{margin:0;padding:0;width:100%;max-width:none}.panel{box-shadow:none;break-inside:avoid}.welcome-banner{background:#eef3fa!important;color:#123!important}.welcome-banner h2,.welcome-banner p{color:#123!important}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr)}.table-wrap{overflow:visible}body{background:white}.finance-stats{grid-template-columns:repeat(3,1fr)}a{color:#123;text-decoration:none}}
.sidebar nav{margin-top:0}.sidebar{overflow-y:auto}.alert-error{border:1px solid #f5bac5}.stat-card{display:block}.stat-card strong{color:var(--navy)}

.stat-card .money-number{display:block;font-size:clamp(14px,1.5vw,22px);white-space:nowrap;font-variant-numeric:tabular-nums}.stat-card strong>small{display:block;font-size:16px;font-weight:600;color:var(--navy)}
