.fd-app{--green:#087e60;--ink:#17253c;--muted:#748094;display:flex;min-height:780px;background:#f4f7fb;color:var(--ink);font:14px/1.5 Inter,system-ui,-apple-system,'Segoe UI',sans-serif;border-radius:14px;overflow:hidden}.fd-app *{box-sizing:border-box}.fd-app a{text-decoration:none}.fd-sidebar{width:252px;flex:0 0 252px;background:#101d30;color:#e5eef9;padding:28px 16px;display:flex;flex-direction:column}.fd-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:-.6px;padding:4px 8px 40px;line-height:1.15}.fd-brand b{color:#46d4a6}.fd-brand small{display:block;font-size:8px;font-weight:600;letter-spacing:1.35px;color:#9eb0c5;margin-top:7px}.fd-mark{background:#0e9a75;padding:10px 12px;border-radius:11px;font-size:24px;color:white}.fd-nav-caption{color:#70839d;font-size:10px;letter-spacing:2px;font-weight:800;margin:0 15px 12px}.fd-nav{display:grid;gap:7px}.fd-nav a{color:#b8c7d9;display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:10px;font-weight:600}.fd-nav a:hover,.fd-nav a.active{background:#183d43;color:#5be1b1}.fd-navicon{font-size:19px;width:24px;text-align:center}.fd-sidebottom{margin-top:auto;color:#b5c8d6;padding:18px 10px;font-size:12px}.fd-sidebottom small{display:block;margin-top:8px;color:#72879e}.fd-dot{display:inline-block;background:#35d49e;width:8px;height:8px;border-radius:50%;margin-right:6px}.fd-main{min-width:0;flex:1;padding:32px 38px}.fd-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:15px}.fd-eyebrow{color:#088766;font-size:10px;font-weight:800;letter-spacing:1.7px}.fd-top h1{font-size:29px;letter-spacing:-1px;margin:5px 0;color:#142239;font-weight:800}.fd-top p{margin:0;color:#7b8899}.fd-user{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}.fd-user small{display:block;color:#8792a1;font-size:11px;font-weight:400}.fd-avatar{width:40px;height:40px;background:#dff6ed;color:#087e60;display:grid;place-items:center;border-radius:50%;font-weight:800}.fd-welcome{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(105deg,#087b60,#0d4d54);color:white;padding:26px 32px;border-radius:16px;margin-bottom:22px;box-shadow:0 10px 24px #0a5b5420}.fd-overline{font-size:10px;letter-spacing:2px;color:#b5eee0;font-weight:800}.fd-welcome h2{color:white;font-size:25px;line-height:1.22;margin:10px 0}.fd-welcome p{color:#d6f0e9;margin:0}.fd-hero-icon{font-size:90px;opacity:.22}.fd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.fd-kpi,.fd-panel{background:white;border:1px solid #e8edf2;border-radius:13px;box-shadow:0 3px 12px #152b4108}.fd-kpi{padding:21px}.fd-kpi>span{display:block;font-size:12px;color:#738095;font-weight:600}.fd-kpi strong{display:block;font-size:33px;letter-spacing:-1px;margin:8px 0;color:#19283e}.fd-kpi small,.fd-muted{color:#8893a2;font-size:12px}.fd-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.fd-panel{padding:22px;margin-bottom:20px;min-width:0}.fd-grid-two .fd-panel{margin-bottom:0}.fd-panel h3{font-size:16px;color:#17253c;margin:0 0 14px;font-weight:800}.fd-panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.fd-panelhead h3{margin:0}.fd-panelhead span,.fd-panelhead a{font-size:12px;color:#8490a0}.fd-panelhead a{color:#087e60;font-weight:700}.fd-progress-label{display:flex;justify-content:space-between;margin:12px 0 6px;font-size:12px}.fd-track{height:7px;background:#edf1f5;border-radius:20px;overflow:hidden}.fd-track>div{height:100%;background:#0d9b74;border-radius:20px}.fd-actions{display:grid;gap:12px}.fd-actions a{padding:14px;background:#f4f9f7;color:#23634f;border-radius:9px;font-weight:700}.fd-actions a span{float:right}.fd-tablewrap{overflow:auto}.fd-app table{width:100%;border-collapse:collapse;font-size:12px;min-width:590px}.fd-app th{text-align:left;color:#8390a0;font-size:10px;letter-spacing:.7px;text-transform:uppercase;background:#f7f9fc}.fd-app th,.fd-app td{padding:13px 11px;border-bottom:1px solid #eef1f5;vertical-align:middle}.fd-app td b{color:#22324a}.fd-app td small{display:block;color:#8a95a4;margin-top:3px}.fd-pill{display:inline-block;background:#e8f1fb;color:#24669b;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:700;white-space:nowrap}.fd-completed,.fd-closed,.fd-operational{background:#def5e9;color:#11764e}.fd-open,.fd-attention{background:#fff0d5;color:#946111}.fd-out-of-service,.fd-on-hold{background:#ffe5e5;color:#ad3535}.fd-form{display:grid;gap:14px}.fd-form label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#47566a}.fd-form input,.fd-form textarea,.fd-form select,.fd-inline select{width:100%;padding:11px 12px;border:1px solid #dfe6ed;border-radius:8px;background:#fff;color:#233349;font:inherit;min-width:0}.fd-formrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fd-btn{border:0;border-radius:9px;background:#087e60;color:#fff;padding:12px 18px;cursor:pointer;font-weight:700;justify-self:start}.fd-btn:hover{background:#075e48}.fd-inline{display:flex;gap:5px;margin-top:5px}.fd-inline select{padding:5px;width:auto;max-width:115px;font-size:11px}.fd-inline button{background:#0a8564;color:white;border:0;border-radius:6px;font-size:11px;cursor:pointer;padding:5px 9px}.fd-bigmetric{display:inline-flex;flex-direction:column;font-size:32px;font-weight:800;color:#087e60;margin:20px 30px 0 0}.fd-bigmetric span{font-size:12px;color:#7d8b9a;font-weight:500}.fd-alert{background:#e2f8ed;color:#126443;padding:13px 17px;border-radius:9px;margin-bottom:18px}.fd-footer{font-size:11px;color:#96a2ae;text-align:center;padding:15px}.fd-login{padding:25px;background:#f4f7fb;border-radius:10px}@media(max-width:1100px){.fd-main{padding:26px}.fd-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.fd-app{display:block}.fd-sidebar{width:100%;padding:15px}.fd-brand{padding-bottom:15px}.fd-nav{display:flex;overflow:auto}.fd-nav a{white-space:nowrap}.fd-sidebottom,.fd-nav-caption{display:none}.fd-main{padding:18px}.fd-top{align-items:flex-start}.fd-top h1{font-size:23px}.fd-user{font-size:11px}.fd-welcome{padding:22px}.fd-hero-icon{display:none}.fd-grid-two{grid-template-columns:1fr}.fd-formrow{grid-template-columns:1fr}}@media(max-width:460px){.fd-kpis{grid-template-columns:1fr 1fr;gap:8px}.fd-kpi{padding:14px}.fd-kpi strong{font-size:26px}.fd-top{display:block}.fd-user{margin-top:15px}}

/* v1.1 dedicated application viewport — theme-independent */
html:has(body.fd360-app-page){margin-top:0!important}
body.fd360-app-page{margin:0!important;padding:0!important;background:#f4f7fb!important;overflow-x:hidden}
body.fd360-app-page.admin-bar{margin-top:0!important}
.fd360-viewport{width:100%;max-width:none!important;margin:0!important;padding:0!important}
.fd360-viewport .fd-app{width:100%;max-width:none!important;min-height:100vh;min-height:100dvh;margin:0!important;border-radius:0!important;overflow:visible}
.fd360-viewport .fd-main{width:calc(100% - 252px);max-width:none!important;padding:36px clamp(20px,3vw,54px) 24px}
.fd360-viewport .fd-sidebar{min-height:100vh;min-height:100dvh;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto}
body.fd360-app-page.admin-bar .fd360-viewport .fd-sidebar{top:32px;height:calc(100vh - 32px);min-height:calc(100vh - 32px)}
body.fd360-app-page.admin-bar .fd360-viewport .fd-app{min-height:calc(100vh - 32px)}
.fd360-viewport .fd-grid-two{align-items:start}
.fd360-viewport .fd-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.fd360-viewport .fd-panel,.fd360-viewport .fd-kpi{min-width:0}
.fd360-viewport .fd-tablewrap{max-width:100%;overflow-x:auto}
.fd360-viewport .fd-top{padding-bottom:8px}
.fd360-viewport .fd-main > .fd-welcome{min-height:178px}
@media(max-width:1100px){.fd360-viewport .fd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.fd360-viewport .fd-main{padding:25px 22px}}
@media(max-width:782px){body.fd360-app-page.admin-bar .fd360-viewport .fd-sidebar{top:46px;height:auto;min-height:0}.fd360-viewport .fd-app{display:block}.fd360-viewport .fd-sidebar{width:100%;height:auto;min-height:0;position:relative;top:auto;padding:16px}.fd360-viewport .fd-brand{padding:0 0 14px}.fd360-viewport .fd-nav-caption,.fd360-viewport .fd-sidebottom{display:none}.fd360-viewport .fd-nav{display:flex;overflow-x:auto;gap:6px}.fd360-viewport .fd-nav a{white-space:nowrap;padding:10px 12px}.fd360-viewport .fd-main{width:100%;padding:20px 14px}.fd360-viewport .fd-top{flex-wrap:wrap}.fd360-viewport .fd-grid-two{grid-template-columns:1fr}}
@media(max-width:480px){.fd360-viewport .fd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.fd360-viewport .fd-welcome{padding:20px}.fd360-viewport .fd-top h1{font-size:24px}}

/* v1.2 command centre */
.fd-commandhero{background:linear-gradient(115deg,#087b60,#0e535b);color:white;border-radius:17px;padding:29px 33px;margin-bottom:22px;display:flex;justify-content:space-between;gap:20px;align-items:center}.fd-commandhero h2{font-size:27px;color:white;margin:9px 0 7px;line-height:1.25}.fd-commandhero p{margin:0;color:#d9f3eb}.fd-commandhero-side{font-size:11px;font-weight:800;letter-spacing:1px;color:#d4f9eb;white-space:nowrap}.fd-commandhero-side small{display:block;text-align:right;margin-top:7px;color:#c4e9df;font-weight:400;letter-spacing:0}.fd-live-dot{display:inline-block;background:#72f2b3;border-radius:50%;height:8px;width:8px;margin-right:6px}.fd-kpis-v12{grid-template-columns:repeat(4,minmax(0,1fr))}.fd-kpis-v12 .fd-kpi{border-top:3px solid #0a9b76}.fd-kpis-v12 .fd-kpi-alert{border-top-color:#dc9863}.fd-analytics-grid{align-items:stretch}.fd-analytics-grid .fd-panel{min-height:260px}.fd-month-chart{height:188px;display:flex;align-items:end;gap:14px;padding:5px 0 0;border-bottom:1px solid #e4eaf0}.fd-month-col{height:100%;flex:1;min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;gap:5px}.fd-month-col b{font-size:11px;color:#476074}.fd-month-col small{font-size:11px;color:#8191a1}.fd-month-track{height:132px;width:min(100%,50px);background:#f1f6f7;border-radius:7px 7px 0 0;display:flex;align-items:flex-end;overflow:hidden}.fd-month-track div{width:100%;background:linear-gradient(0deg,#087b60,#21b993);border-radius:6px 6px 0 0;min-height:0}.fd-track-blue>div{background:#528ac5}.fd-mini-summary{display:flex;justify-content:space-between;margin-top:19px;padding-top:15px;border-top:1px solid #e7edf1;font-size:12px;color:#708094}.fd-mini-summary strong{color:#1d3145}@media(max-width:1050px){.fd-kpis-v12{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.fd-commandhero{padding:22px;display:block}.fd-commandhero-side{margin-top:15px}.fd-commandhero-side small{text-align:left}.fd-commandhero h2{font-size:23px}.fd-month-chart{gap:7px}.fd-analytics-grid .fd-panel{min-height:0}}

/* v1.3 premium visual system: design-only upgrade, no database changes */
.fd360-viewport .fd-kpis-v12{gap:17px;margin-bottom:23px}
.fd360-viewport .fd-kpis-v12 .fd-kpi{--kpi-accent:#1583c5;--kpi-tint:#eaf5fe;--kpi-border:#cfe5f7;position:relative;min-height:165px;padding:21px 22px 19px;border:1px solid var(--kpi-border)!important;border-top:1px solid var(--kpi-border)!important;border-radius:16px;background:linear-gradient(145deg,#fff 68%,var(--kpi-tint) 180%);box-shadow:0 5px 20px rgba(21,43,67,.045),0 1px 3px rgba(21,43,67,.025);transition:transform .18s ease,box-shadow .18s ease}
.fd360-viewport .fd-kpis-v12 .fd-kpi:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(21,43,67,.085)}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(2){--kpi-accent:#b98516;--kpi-tint:#fff5df;--kpi-border:#f0dfb5}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(3){--kpi-accent:#078768;--kpi-tint:#e5f8ee;--kpi-border:#bfe8d7}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(4){--kpi-accent:#c64f57;--kpi-tint:#fff0f1;--kpi-border:#f2cbd0}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(5){--kpi-accent:#0d8d7f;--kpi-tint:#e6f8f3;--kpi-border:#c1e9dd}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(6){--kpi-accent:#ca7736;--kpi-tint:#fff1e5;--kpi-border:#f3d9c4}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(7){--kpi-accent:#6960b9;--kpi-tint:#f0eeff;--kpi-border:#ded8f7}
.fd360-viewport .fd-kpis-v12 .fd-kpi:nth-child(8){--kpi-accent:#c24e56;--kpi-tint:#fff0f1;--kpi-border:#f2cbd0}
.fd-kpi-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-height:43px}
.fd360-viewport .fd-kpis-v12 .fd-kpi .fd-kpi-head>span:first-child{display:block;color:#65768a;font-size:12px;font-weight:650;line-height:1.5}
.fd-kpi-icon{width:39px;height:39px;flex:none;border-radius:11px;background:var(--kpi-tint);color:var(--kpi-accent);display:grid;place-items:center;font-size:21px;font-weight:800;line-height:1}
.fd360-viewport .fd-kpis-v12 .fd-kpi strong{font-size:34px;line-height:1.15;margin:7px 0 10px;letter-spacing:-1.2px;color:#14283f}
.fd360-viewport .fd-kpis-v12 .fd-kpi small{display:flex;align-items:center;gap:7px;color:#77899a;font-size:11.5px;line-height:1.5}
.fd360-viewport .fd-kpis-v12 .fd-kpi small:before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:var(--kpi-accent)}
.fd360-viewport .fd-panel{border:1px solid #e2eaf1;border-radius:16px;box-shadow:0 5px 22px rgba(20,42,65,.035);background:#fff}
.fd360-viewport .fd-panelhead{padding-bottom:12px;border-bottom:1px solid #eff2f5}
.fd360-viewport .fd-panelhead h3{letter-spacing:-.3px}
.fd360-viewport .fd-track{height:8px;background:#eef2f6}
.fd360-viewport .fd-track>div{background:linear-gradient(90deg,#0a8c72,#29b99a)}
.fd360-viewport .fd-progress-label:nth-of-type(4n+1)+.fd-track>div{background:linear-gradient(90deg,#cf8c28,#e5b552)}
.fd360-viewport .fd-actions a{border:1px solid #e4f0eb;transition:background .18s,border-color .18s}
.fd360-viewport .fd-actions a:hover{background:#e9f6f0;border-color:#b8e1d0}
.fd360-viewport .fd-commandhero{box-shadow:0 9px 22px rgba(9,85,74,.10)}
@media(max-width:600px){.fd360-viewport .fd-kpis-v12{gap:10px}.fd360-viewport .fd-kpis-v12 .fd-kpi{padding:15px;min-height:150px}.fd-kpi-icon{width:31px;height:31px;font-size:17px}.fd360-viewport .fd-kpis-v12 .fd-kpi strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){.fd360-viewport .fd-kpis-v12 .fd-kpi{transition:none}.fd360-viewport .fd-kpis-v12 .fd-kpi:hover{transform:none}}

/* v1.4 facilities & preventive maintenance */
.fd360-viewport .fd-nav a{transition:background .18s,color .18s}.fd360-viewport .fd-panel:has(.fd-form){border-color:#d9eae4}.fd360-viewport .fd-panel .fd-form{margin-top:16px}.fd360-viewport .fd-tablewrap{margin-top:15px}.fd360-viewport .fd-tablewrap td{vertical-align:top}.fd360-viewport .fd-tablewrap td .fd-form{margin-top:7px}.fd360-viewport .fd-tablewrap td .fd-form select{max-width:110px}.fd360-viewport .fd-tablewrap td .fd-form button{margin-top:5px}
