:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1b2233;background:#f3f5fa;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:#364acc;text-decoration:none}.app{min-height:100vh;display:grid;grid-template-columns:256px 1fr}.side{background:#111c36;color:#e7eaf3;min-height:100vh;padding:25px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-size:22px;font-weight:760;display:flex;align-items:center;gap:10px;padding:9px 12px 26px}.brand-symbol{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#5d6ff2;color:white}.tag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#9facce;padding:18px 12px 7px}.nav{display:block;width:100%;text-align:left;border:0;border-radius:10px;background:transparent;color:#b9c4da;padding:11px 12px;font-weight:560}.nav:hover,.nav.active{background:#273657;color:white}.nav .symbol{margin-right:12px}.bottom{border-top:1px solid #2e3a57;margin-top:26px;padding:12px;color:#9facce;font-size:12px}.main{min-width:0}.top{background:#fff;border-bottom:1px solid #e4e8ef;min-height:72px;padding:17px 34px;display:flex;align-items:center;justify-content:space-between;gap:15px}.top-title{font-size:20px;font-weight:700}.user-chip{display:flex;align-items:center;gap:12px;color:#596579}.content{padding:28px 34px;max-width:1450px;margin:auto}.hint{font-size:13px;color:#667086}.muted{color:#68738a}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:700;color:#727e96;margin:0 0 6px}.h1{font-size:27px;margin:0 0 8px;font-weight:750}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.panel{background:white;border:1px solid #e1e7f1;border-radius:16px;padding:22px;box-shadow:0 2px 12px #14204a08;margin-bottom:22px}.panel h2{font-size:17px;margin:0 0 16px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0}.metric{background:#fff;border:1px solid #e2e7f0;border-radius:14px;padding:19px;min-height:115px}.metric .value{font-size:27px;font-weight:760;letter-spacing:-.04em;color:#1c2e52;margin-top:14px}.metric .label{color:#6c7892;font-size:12px;font-weight:600}.metric .meta{font-size:11px;color:#7b859b;margin-top:5px}.stack{display:flex;gap:12px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#6e7b92;background:#f7f8fb;text-transform:uppercase;font-size:11px;letter-spacing:.04em;font-weight:680}td,th{padding:12px 11px;border-bottom:1px solid #edf0f5;vertical-align:top}tr:last-child td{border-bottom:none}.table-wrap{overflow:auto}small{color:#717b8c}.button{border:0;background:#5065e8;color:white;padding:10px 15px;border-radius:9px;font-weight:650;white-space:nowrap}.button:hover{filter:brightness(.94)}.button.secondary{background:#eef1ff;color:#384bb0}.button.danger{background:#fff0f1;color:#b43851}.button.plain{background:#f0f3f7;color:#45546f}.button.sm{font-size:12px;padding:7px 10px}.input{border:1px solid #dbe2ed;border-radius:9px;padding:11px 12px;width:100%;background:white;color:#1b2233}.input:focus{outline:2px solid #d9e0ff;border-color:#7183df}.field{display:block;color:#4b5970;font-size:12px;font-weight:650;margin-bottom:12px}.field .input{display:block;margin-top:6px;font-weight:400}textarea.input{min-height:85px}.formrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.badge{display:inline-block;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700;background:#e9ecf4;color:#4b5669}.badge.approved,.badge.settled{background:#e1f8ed;color:#15734e}.badge.submitted{background:#fff2d8;color:#936413}.badge.returned,.badge.rejected{background:#ffe8e8;color:#a13f43}.badge.draft{background:#edf0f6;color:#65708a}.notice{padding:12px 16px;border-radius:10px;background:#edf5ff;color:#265184;margin-bottom:15px}.notice.error{background:#ffeded;color:#972e45}.notice.ok{background:#e5f7ee;color:#136c4b}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 30% 15%,#dbe2ff,transparent 45%),#eef1f8}.login-card{width:min(430px,100%);background:white;border:1px solid #e3e7ef;border-radius:20px;padding:37px;box-shadow:0 24px 75px #15245313}.login-card h1{font-size:24px;margin:16px 0 7px}.login-card .input{margin-top:6px}.login-card .button{width:100%;margin-top:12px}.login-brand{display:flex;gap:12px;align-items:center;font-size:22px;font-weight:750}.empty{padding:30px;text-align:center;color:#77849a}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word;font-size:12px}.locked{background:#f7f8fb;border:1px dashed #d6deea;border-radius:13px;padding:22px;margin:10px 0;color:#6d7890}.toast{position:fixed;right:20px;bottom:20px;background:#172342;color:white;padding:15px 20px;border-radius:12px;box-shadow:0 12px 40px #0003;z-index:100}.flex1{flex:1}.text-right{text-align:right}.overflow-auto{overflow:auto}@media(max-width:1080px){.metrics{grid-template-columns:repeat(2,1fr)}.app{grid-template-columns:200px 1fr}.top,.content{padding-left:20px;padding-right:20px}}@media(max-width:700px){.app{display:block}.side{position:static;height:auto;min-height:0;display:flex;gap:8px;flex-wrap:wrap;padding:10px}.brand{padding:8px 10px}.tag,.bottom{display:none}.nav{width:auto;padding:9px}.nav .symbol{display:none}.top{padding:14px}.content{padding:17px}.h1{font-size:22px}.metrics,.grid2,.grid3,.formrow{grid-template-columns:1fr}.panel{padding:16px}.section-head{flex-direction:column;align-items:flex-start}.user-chip{font-size:11px}}
/* ExpenseFlow modal center fix v1.0.3a — external CSS, CSP style-src 'self' compliant */
.ef-modal-backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.58);overflow-y:auto}
.ef-modal-card{display:block;width:min(540px,100%);max-height:calc(100vh - 40px);overflow-y:auto;margin:auto;background:#fff;color:#1b2233;border:1px solid #e1e7f1;border-radius:18px;padding:26px;box-shadow:0 24px 80px rgba(17,28,54,.28)}
.ef-modal-title{margin:0 0 10px;font-size:23px;font-weight:750;line-height:1.25;color:#1b2233}
.ef-modal-message{margin:0 0 18px;font-size:13px;line-height:1.6;color:#667086;white-space:pre-wrap}
.ef-modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}
.ef-modal-actions .button{min-width:100px}
.ef-modal-field{margin-top:12px}
.ef-modal-field .input{width:100%}
.ef-choice-list{display:grid;gap:10px;margin-top:12px}
.ef-choice-item{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #dbe2ed;border-radius:12px;background:#f7f8fb;cursor:pointer}
.ef-choice-item:has(input:checked){border-color:#5065e8;background:#eef1ff}
.ef-choice-item input{margin-top:3px;accent-color:#5065e8}
.ef-choice-item strong{display:block;font-size:13px;color:#1b2233}
.ef-choice-item small{display:block;margin-top:4px;font-size:12px;color:#68738a}
.ef-copy-box{display:block;width:100%;min-height:110px;resize:vertical;border:1px solid #dbe2ed;border-radius:12px;padding:12px;background:#f7f8fb;color:#1b2233;font:13px/1.6 ui-monospace,Menlo,monospace}
@media(max-width:560px){.ef-modal-backdrop{padding:12px}.ef-modal-card{padding:20px;border-radius:15px;max-height:calc(100vh - 24px)}.ef-modal-title{font-size:20px}}

/* ExpenseFlow v1.0.4 dashboard drilldowns */
.ef-dashboard-metric{display:block;width:100%;height:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;background:#fff;border:1px solid #dfe6f2;border-radius:14px}
.ef-dashboard-metric:hover,.ef-dashboard-metric:focus-visible{transform:translateY(-2px);border-color:#637af3;box-shadow:0 10px 24px rgba(34,57,114,.11);outline:none}
.ef-dashboard-cta{font-size:12px;font-weight:700;color:#465fe8;margin-top:11px}
.ef-dashboard-link{font:inherit;color:#334ac1;background:transparent;border:0;padding:5px 3px;cursor:pointer;text-align:left;border-radius:6px;max-width:100%;overflow-wrap:anywhere}
.ef-dashboard-link:hover,.ef-dashboard-link:focus-visible{background:#edf2ff;text-decoration:underline;outline:2px solid transparent}
.ef-dashboard-filters{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:14px 0;color:#64748b;font-size:13px}
@media(max-width:620px){.ef-dashboard-metric{min-height:130px}.ef-dashboard-filters{flex-wrap:wrap}}
/* ExpenseFlow v1.0.5 — approval and finance queues */
.ef-queue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 20px}
.ef-queue-summary{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #dae1ed;border-radius:15px;padding:20px;min-height:126px}
.ef-queue-summary span{font-size:13px;color:#53637e;font-weight:700}
.ef-queue-summary strong{font-size:27px;color:#1e2a48}
.ef-queue-summary small{color:#60718a;line-height:1.4}
@media(max-width:900px){.ef-queue-grid{grid-template-columns:1fr}}

/* ExpenseFlow v1.0.6 - finance acceptance guidance */
.ef-qa-panel{padding:20px 22px;background:linear-gradient(125deg,#f5f8ff,#ffffff);border:1px solid #dbe4fa;border-radius:16px;margin:0 0 18px;box-shadow:0 3px 14px rgba(19,42,90,.04)}
.ef-qa-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#14223f;font-weight:750;font-size:16px}
.ef-qa-panel p{margin:8px 0 15px}.ef-qa-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}
.ef-qa-steps span{padding:12px 10px;border-radius:12px;background:white;border:1px solid #dee6f5;color:#27395a;font-size:12px;font-weight:600}
.ef-qa-personal{display:inline-block;background:#e9f7ef;border-radius:9px;color:#087448;padding:6px 8px;font-size:12px;font-weight:700}
@media(max-width:1000px){.ef-qa-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.ef-qa-steps{grid-template-columns:1fr}}

/* ExpenseFlow v1.0.7 operational register tools */
.ef-generic-toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:18px 0}.ef-generic-toolbar>.field{flex:1 1 230px;max-width:520px}.ef-generic-toolbar .button{margin-bottom:1px}#generic-records .hint{margin:8px 0 14px}@media(max-width:650px){.ef-generic-toolbar{align-items:stretch}.ef-generic-toolbar .button{width:100%}}

/* v1.0.25 Glass Edition: visual-only overrides; no finance or authorization changes. */
:root{color-scheme:light;--ef-indigo:#5a54e8;--ef-aqua:#35b6ce;--ef-line:rgba(126,143,191,.21)}
body{background:radial-gradient(ellipse at 85% 1%,rgba(111,159,255,.24),transparent 35%),radial-gradient(ellipse at 18% 95%,rgba(56,210,202,.16),transparent 39%),#f2f5fd}
.app{background:transparent}
.side{background:linear-gradient(160deg,rgba(22,32,70,.96),rgba(23,25,60,.94) 55%,rgba(30,57,86,.96));border-right:1px solid rgba(185,206,255,.14);box-shadow:12px 0 48px rgba(29,34,95,.12)}
.brand-symbol{background:linear-gradient(145deg,#706cff,#37c8db);box-shadow:0 10px 24px rgba(67,86,223,.34)}
.nav{transition:background .18s ease,transform .18s ease,color .18s ease}
.nav:hover{background:rgba(175,191,255,.13);transform:translateX(2px)}
.nav.active{background:linear-gradient(115deg,rgba(115,126,253,.38),rgba(51,199,211,.16));box-shadow:inset 0 0 0 1px rgba(201,215,255,.14)}
.main{min-width:0}
.top{background:rgba(255,255,255,.54);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(150,171,210,.22)}
.panel,.metric,.ef-queue-summary,.ef-qa-panel{background:rgba(255,255,255,.74);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ef-line);box-shadow:0 10px 38px rgba(43,66,139,.07);border-radius:20px}
.panel:hover,.metric:hover{box-shadow:0 18px 44px rgba(43,66,139,.1)}
.button:not(.danger){background:linear-gradient(110deg,#565bea,#6978eb)}
.button.plain{background:rgba(229,235,249,.84);color:#34456b}
.button.secondary{background:rgba(226,231,255,.85);color:#343c9f}
.input{background:rgba(255,255,255,.9);border-color:rgba(145,160,197,.35)}
.login-shell{background:radial-gradient(circle at 18% 25%,rgba(101,116,245,.3),transparent 37%),radial-gradient(circle at 82% 79%,rgba(66,204,220,.2),transparent 36%),#eff3fc}
.login-card{background:rgba(255,255,255,.86);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:rgba(255,255,255,.8)}
.ef-scope-intro{padding:26px 28px;border-radius:24px;background:linear-gradient(120deg,#262b71,#515baf 58%,#238998);color:#fff;display:flex;justify-content:space-between;align-items:start;gap:20px;box-shadow:0 16px 45px rgba(57,69,157,.16)}
.ef-scope-intro h2{font-size:27px;margin:10px 0 5px}.ef-scope-intro p{opacity:.83;margin:0}.ef-eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;opacity:.76}.ef-scope-pill{padding:9px 14px;border-radius:99px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);white-space:nowrap}
.ef-scope-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:18px 0}.ef-scope-stats>div{display:flex;flex-direction:column;gap:5px;padding:17px 18px;background:rgba(255,255,255,.78);border:1px solid var(--ef-line);border-radius:17px}.ef-scope-stats strong{font-size:29px;color:#242f6c}.ef-scope-stats span{font-size:12px;color:#63718f}
.ef-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.ef-scope-item{background:rgba(255,255,255,.78);backdrop-filter:blur(14px);border:1px solid var(--ef-line);border-radius:19px;padding:20px;min-height:170px}.ef-scope-item h2{font-size:16px;margin:16px 0 10px;color:#243358}.ef-scope-item p{font-size:12px;line-height:1.6;color:#60708d}.ef-scope-state{display:inline-block;border-radius:99px;padding:6px 10px;font-size:11px;font-weight:760;background:#e7eafb;color:#46517a}.ef-status-live .ef-scope-state{background:#dcf7ed;color:#146b52}.ef-status-test .ef-scope-state{background:#fff0d3;color:#936017}.ef-status-building .ef-scope-state{background:#e6e9ff;color:#4e55a9}
@media(max-width:1100px){.ef-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.ef-scope-stats,.ef-scope-grid{grid-template-columns:1fr 1fr}.ef-scope-intro{flex-direction:column}.ef-scope-intro h2{font-size:22px}}@media(max-width:480px){.ef-scope-stats,.ef-scope-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.nav{transition:none}.nav:hover{transform:none}}

/* v1.0.26 professional glass, accessible light/dark modes */
:root{--glass-accent:#5267dd;--glass-edge:rgba(113,139,182,.22)}
body{background:radial-gradient(circle at 82% 0%,rgba(128,174,255,.15),transparent 36%),#edf2f9}
.side{background:linear-gradient(165deg,#0e2040,#1c3154 65%,#10203a);border-right:1px solid rgba(255,255,255,.12)}
.top,.panel,.metric,.ef-queue-summary,.login-card{background:rgba(255,255,255,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--glass-edge);box-shadow:0 12px 38px rgba(28,48,97,.055)}
.nav.active{background:linear-gradient(110deg,rgba(102,133,236,.42),rgba(55,160,185,.19));box-shadow:inset 3px 0 #6ae1f0}
.button{background:linear-gradient(105deg,#4f62d8,#407bcb)}
.metric,.panel{transition:transform .18s ease,border-color .18s ease}.metric:hover{transform:translateY(-2px)}
body.ef-dark{background:radial-gradient(circle at 80% 0%,#26395e,#0e1424 65%);color:#edf4ff}
.ef-dark .main,.ef-dark .content{color:#edf4ff}
.ef-dark .top,.ef-dark .panel,.ef-dark .metric,.ef-dark .ef-queue-summary{background:rgba(27,40,64,.82);border-color:#425172;color:#edf4ff}
.ef-dark .h1,.ef-dark .top-title,.ef-dark .metric .value,.ef-dark .ef-queue-summary strong,.ef-dark .panel h2{color:#f0f5ff}
.ef-dark .input,.ef-dark textarea,.ef-dark select{background:#192943;color:#f4f7ff;border-color:#4d6180}
.ef-dark td,.ef-dark th{color:#d6e1f4;border-color:#41516c;background:transparent}
.ef-dark .hint,.ef-dark .muted,.ef-dark small{color:#bac8de}
.ef-dark .button.plain{background:#334665;color:#eff7ff}
.ef-theme-toggle{border:1px solid #8593ab88;border-radius:10px;background:transparent;color:inherit;padding:8px 10px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.metric,.panel{transition:none}.metric:hover{transform:none}}
