:root{color-scheme:dark;--bg:#0b111b;--sidebar:#0e1723;--panel:#121e2c;--line:#263446;--text:#edf4fa;--muted:#93a4b4;--accent:#a3e3b2;--accent2:#163c32;--warning:#f3c88d;--danger:#f5a4a6;--shadow:0 18px 40px rgba(0,0,0,.10)}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}input,textarea,select{outline:0}.app-shell{display:flex;min-height:100vh}.sidebar{width:255px;flex:0 0 255px;min-height:100vh;display:flex;flex-direction:column;padding:30px 17px 23px;background:var(--sidebar);border-right:1px solid var(--line);position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:12px;padding:0 15px;margin-bottom:54px;font-weight:800;font-size:25px;letter-spacing:-1.2px}.logo-symbol{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;color:#0d241b;background:var(--accent);font-size:34px;font-weight:400}.logo-accent{color:var(--accent)}.logo small{display:block;font-size:8px;letter-spacing:2.5px;font-weight:600;color:#607a82;margin-top:-3px}.nav-label,.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--accent)}.nav-label{color:#697b90;padding:0 15px;margin-bottom:15px}.sidebar nav{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:14px;border-radius:9px;padding:13px 15px;color:#9babba;font-size:13px;font-weight:600;transition:background .2s,color .2s}.nav-link span{width:19px;font-size:19px;font-weight:500;text-align:center}.nav-link:hover{background:#1b2b3b;color:white}.nav-link.selected{background:#183a34;color:#bcecc8}.sidebar-bottom{margin-top:auto}.side-note{display:flex;align-items:center;gap:9px;padding:18px 7px;color:#7e92a2;font-size:10px;border-bottom:1px solid var(--line)}.note-dot{width:7px;height:7px;background:#6ad4a0;border-radius:50%;box-shadow:0 0 10px #6ad4a0}.profile{display:flex;align-items:center;gap:10px;margin:19px 0 10px}.avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#354c54;color:#e1f7e6;font-weight:800}.profile-name{display:flex;flex-direction:column;gap:2px;font-size:12px}.profile-name small{font-size:10px;color:var(--muted)}.logout{background:transparent;border:0;padding:8px 0;color:#92a3b2;font-size:11px}.logout:hover{color:#fff}.main-area{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:72px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 42px}.breadcrumb{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#62798c}.breadcrumb span{padding:0 12px;color:#3e5568}.topbar-right{font-size:10px;color:var(--accent);letter-spacing:.3px}.topbar-right span{color:#8ea6a6}.content{padding:44px clamp(24px,4.4vw,76px) 70px;max-width:1600px;width:100%;margin:0 auto;flex:1}.footer{font-size:10px;text-align:right;border-top:1px solid var(--line);padding:17px 42px;color:#5e7487;letter-spacing:.4px}.footer span{padding:0 8px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:34px}.page-heading h1{font-size:clamp(26px,3vw,38px);letter-spacing:-1.5px;line-height:1.14;margin:10px 0 10px;font-weight:760}.muted{color:var(--muted)}.page-heading p{margin:0;font-size:13px;line-height:1.7}.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;min-height:41px;font-size:12px;font-weight:750;letter-spacing:.1px;border-radius:8px;white-space:nowrap;transition:filter .15s,transform .15s}.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#0a271c}.btn-secondary{background:#1a2b3b;color:#e5f2f4;border-color:#334555}.btn-small{min-height:32px;padding:6px 11px;font-size:10px}.full{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:23px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:linear-gradient(140deg,#142231,#101d2a);border:1px solid #263748;padding:24px 23px;display:block;min-height:157px;border-radius:11px}.metric-head{font-size:10px;font-weight:800;letter-spacing:1.15px;color:#8da3b0;display:flex;align-items:center;justify-content:space-between}.metric-head span{font-size:20px;color:#60817e;font-weight:400}.metric-value{font-size:38px;font-weight:740;letter-spacing:-1.5px;margin:17px 0 5px;line-height:1.1}.metric-value.medium{font-size:23px;letter-spacing:-.8px}.metric-foot{font-size:10px;color:#748e9f;line-height:1.7}.text-danger{color:var(--danger)}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;overflow:hidden}.panel-heading{min-height:103px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:27px 26px 20px}.panel-heading h2{font-size:17px;letter-spacing:-.45px;margin:7px 0 0}.subtle-link{font-size:11px;color:var(--accent);font-weight:750;white-space:nowrap}.subtle-link:hover{text-decoration:underline}.entry-list{padding:0 24px 16px}.entry{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:17px 0;min-width:0}.entry-icon{flex:0 0 36px;width:36px;height:36px;background:#23384a;color:#91ccbc;border-radius:9px;display:grid;place-items:center;font-size:19px}.entry-icon.icon-warn{background:#42352c;color:var(--warning)}.entry-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.entry-main a,.entry-main strong{font-size:12px;font-weight:700;overflow-wrap:anywhere}.entry-main a:hover{color:var(--accent)}.entry-main small{font-size:10px;color:#7c93a7;overflow-wrap:anywhere}.entry-right{flex-shrink:0;display:flex;flex-direction:column;gap:5px;align-items:flex-end;font-size:11px}.entry-right small{color:var(--muted)}.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #385268;background:#213547;color:#c0d0da;font-weight:700;border-radius:5px;padding:5px 9px;font-size:10px;white-space:nowrap}.pill-success{background:#193d31;color:#adeac1;border-color:#275c49}.pill-warning{background:#3d3429;color:#f4cb94;border-color:#5b4933}.pill-danger{background:#4a2832;color:#f6b0b3;border-color:#74404a}.margin-top{margin-top:20px}.empty-state{padding:36px 24px 48px;text-align:center}.empty-glyph{font-size:35px;color:#708da1}.empty-state h3{margin:8px 0;font-size:15px}.empty-state p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 16px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:17px 22px;color:#7790a2;font-size:10px;letter-spacing:1.05px;font-weight:700;white-space:nowrap;background:#142131}td{border-top:1px solid var(--line);padding:17px 22px;color:#c2d0dc;font-size:12px;white-space:nowrap}tr:hover td{background:#162635}td small{display:block;font-size:10px;color:#71899b;margin-top:5px}.table-title{font-weight:750;color:#f2f7fd}.table-title:hover{color:var(--accent)}.filterbar{display:flex;gap:11px;padding:22px;flex-wrap:wrap}.filterbar input{flex:1;min-width:180px}.filterbar select{width:185px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#b8cad7}.field>span{font-size:11px;font-weight:700;color:#97aebe}.field input,.field select,.field textarea,.filterbar input,.filterbar select{border:1px solid #304659;border-radius:7px;background:#0d1926;color:#ebf5fa;min-height:43px;padding:10px 13px;width:100%}.field input:focus,.field select:focus,.field textarea:focus,.filterbar input:focus{border-color:#7dca9d;box-shadow:0 0 0 2px #6bbe8a22}.field input::placeholder,.field textarea::placeholder,.filterbar input::placeholder{color:#5b7182}.field textarea{resize:vertical;line-height:1.6;min-height:92px}.field input[type=file]{padding:9px}.form-card{max-width:930px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:31px 34px}.form-section-title{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);color:var(--accent);font-size:11px;font-weight:800;letter-spacing:1.5px;margin:13px 0 24px;padding-bottom:14px}.form-section-title:first-child{margin-top:0}.form-section-title span{font-size:14px;color:#d9e7ed;letter-spacing:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:36px}.field.wide,.wide{grid-column:span 2}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:11px;margin-top:25px;padding-top:21px;border-top:1px solid var(--line)}.checkline{display:flex;gap:11px;align-items:center;font-size:12px;color:var(--muted)}.checkline input{accent-color:#9bdbab}.asset-meta{display:flex;flex-wrap:wrap;gap:20px;align-items:center;color:#8ba3b6;font-size:12px;margin:-17px 0 30px}.asset-meta span{display:flex;align-items:center;gap:7px}.info-note{border:1px solid #264639;border-radius:8px;background:#152b27;color:#a7c7b8;font-size:12px;padding:14px 18px;margin-bottom:23px;line-height:1.6}.progress{height:6px;background:#263d4c;margin:13px 0 7px;border-radius:5px;overflow:hidden}.progress progress{width:100%;height:100%;border:0;background:#263d4c;display:block}.progress progress::-webkit-progress-bar{background:#263d4c}.progress progress::-webkit-progress-value{background:#8ee1ab;border-radius:5px}.progress progress::-moz-progress-bar{background:#8ee1ab}.notes{padding:0 26px 25px;color:#bdccda;font-size:13px;line-height:1.8}.inline-actions{display:flex;gap:13px;align-items:center}.stacked-form{padding:0 26px 28px;display:grid;gap:16px}.small{font-size:11px;line-height:1.6}.link-danger{border:0;background:transparent;color:#ea9a9f;font-size:10px;padding:3px 0}.link-danger:hover{text-decoration:underline}.inline-password{padding:0 26px 28px;display:flex;align-items:flex-end;gap:13px;flex-wrap:wrap}.inline-password .field{flex:1;min-width:160px}.dialog{color:var(--text);background:#152435;border:1px solid #40576b;border-radius:12px;box-shadow:0 25px 90px #0008;padding:25px;width:min(450px,calc(100vw - 34px))}.dialog::backdrop{background:#030913ad}.dialog h2{margin:0 0 7px;font-size:21px}.dialog p{color:var(--muted);font-size:12px}.dialog form{display:grid;gap:15px}.dialog .form-actions{margin-top:0}.alert{padding:14px 18px;border-radius:8px;margin-bottom:21px;font-size:12px}.alert-success{background:#193b30;border:1px solid #3b7955;color:#b9edca}.alert-error{background:#43252c;border:1px solid #8b3e4a;color:#ffbdc3}.auth-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 57% 38%,#203b39 0%,#0d1b28 32%,#0a111a 70%);padding:22px}.login-panel{width:min(100%,445px);padding:38px 42px 35px;background:#122231;border:1px solid #304355;border-radius:15px;box-shadow:0 30px 90px #0007}.login-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:13px;color:#103025;background:var(--accent);font-size:46px;margin-bottom:33px}.login-panel h1{font-size:38px;line-height:1.13;letter-spacing:-1.5px;margin:14px 0}.login-panel h1 em{font-style:normal;color:var(--accent)}.login-panel p{font-size:13px;color:#a1b4c1;line-height:1.75;margin:0 0 28px}.login-panel small{display:block;color:#6f889b;font-size:10px;text-align:center;margin-top:23px}.login-form{display:grid;gap:18px}.login-form button{margin-top:5px}.mobile-menu{display:none}.docs-layout{grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr)}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:225px;flex-basis:225px}.topbar{padding:0 30px}.content{padding:33px 30px 60px}}
@media(max-width:780px){.sidebar{position:fixed;left:-265px;top:0;z-index:20;transition:left .2s;box-shadow:10px 0 40px #0005}.sidebar.open{left:0}.mobile-menu{display:block;border:0;background:none;color:#c9e3dc;font-size:24px;padding:6px}.topbar{height:58px;gap:10px;padding:0 18px}.breadcrumb{margin-right:auto;font-size:9px}.topbar-right span{display:none}.content{padding:30px 18px 52px}.page-heading{align-items:flex-start}.page-heading h1{font-size:29px}.dashboard-columns,.docs-layout{grid-template-columns:1fr}.form-card{padding:22px}.stats-grid{gap:10px}.metric{padding:18px;min-height:135px}.metric-value{font-size:30px}.footer{padding:14px 18px}}
@media(max-width:460px){.page-heading{flex-direction:column;gap:16px;margin-bottom:25px}.page-heading .btn{width:100%}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid.three{grid-template-columns:1fr}.metric{padding:15px;min-height:126px}.metric-head{font-size:9px}.metric-value{font-size:28px}.metric-foot{font-size:9px}.panel-heading{padding:21px 18px 15px}.entry-list{padding:0 17px 12px}.entry-icon{flex-basis:31px;width:31px;height:31px}.form-grid{grid-template-columns:1fr}.field.wide,.wide{grid-column:auto}.form-actions{flex-wrap:wrap}.form-actions .btn{flex:1}.login-panel{padding:29px 25px}.filterbar{padding:17px}.filterbar select{flex:1;min-width:120px}.filterbar button{flex:1}}

.profile-panel{max-width:600px}.profile-panel .btn{justify-self:start}

/* HomeOS v0.1.2 — mobile-first responsive improvements.
   Scope: layout, readability, tap targets, table cards, drawer accessibility.
   No business rules, forms, API paths or database changes. */
:where(a,button,input,select,textarea):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.sidebar-backdrop[hidden] { display: none !important; }
.sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 25;
  border: 0;
  background: rgba(2,8,14,.74);
  padding: 0;
}
.dialog { max-height: calc(100dvh - 24px); overflow-y: auto; }

@media (max-width: 780px) {
  html { font-size: 16px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { min-width: 0; }
  body.menu-open { overflow: hidden; }
  .app-shell { display: block; min-height: 100dvh; }
  .main-area { width: 100%; min-width: 0; min-height: 100dvh; }
  .sidebar {
    width: min(320px, 86vw);
    height: 100dvh;
    min-height: 0;
    padding: 22px 17px 20px;
    left: 0;
    z-index: 30;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(-105%);
    transition: transform .22s ease;
  }
  .sidebar.open { left: 0; transform: translateX(0); }
  .sidebar-backdrop:not([hidden]) { display: block; }
  .sidebar .logo { font-size: 26px; margin-bottom: 34px; }
  .sidebar .nav-label { font-size: 12px; }
  .sidebar .nav-link { font-size: 16px; min-height: 48px; padding: 13px 14px; }
  .sidebar .side-note { font-size: 12px; }
  .sidebar .profile-name { font-size: 14px; }
  .sidebar .profile-name small { font-size: 12px; }
  .sidebar .logout { font-size: 14px; min-height: 44px; }
  .mobile-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    font-size: 25px;
    background: #1a2b3b;
  }
  .topbar { height: 64px; gap: 12px; padding: 0 16px; }
  .breadcrumb { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; letter-spacing: .7px; }
  .breadcrumb span { padding: 0 5px; }
  .topbar-right { flex: 0 0 auto; font-size: 13px; }
  .content { padding: 24px 16px 52px; }
  .footer { font-size: 12px; text-align: center; line-height: 1.5; padding: 18px 16px max(18px, env(safe-area-inset-bottom)); }
  .eyebrow, .nav-label { font-size: 12px; letter-spacing: 1.4px; }
  .page-heading { gap: 16px; margin-bottom: 23px; }
  .page-heading h1 { font-size: clamp(25px, 6.7vw, 34px); line-height: 1.18; letter-spacing: -.85px; margin: 9px 0; overflow-wrap: anywhere; }
  .page-heading p { font-size: 15px; line-height: 1.55; }
  .btn { min-height: 46px; padding: 12px 16px; font-size: 15px; }
  .btn-small { min-height: 44px; padding: 9px 14px; font-size: 14px; }
  .subtle-link { font-size: 14px; white-space: normal; line-height: 1.4; }
  .stats-grid { gap: 10px; margin-bottom: 16px; }
  .metric { min-height: 141px; padding: 17px; min-width: 0; }
  .metric-head { font-size: 12px; letter-spacing: .7px; line-height: 1.35; gap: 8px; }
  .metric-head span { font-size: 18px; }
  .metric-value { font-size: clamp(29px, 7vw, 36px); margin: 13px 0 8px; overflow-wrap: anywhere; }
  .metric-value.medium { font-size: clamp(21px, 5vw, 27px); }
  .metric-foot { font-size: 12px; line-height: 1.45; }
  .panel { min-width: 0; }
  .panel-heading { min-height: 85px; padding: 19px 17px 16px; gap: 12px; }
  .panel-heading h2 { font-size: 18px; line-height: 1.3; overflow-wrap: anywhere; }
  .entry-list { padding: 0 16px 12px; }
  .entry { gap: 12px; padding: 16px 0; }
  .entry-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .entry-main a, .entry-main strong { font-size: 15px; line-height: 1.35; }
  .entry-main small { font-size: 13px; line-height: 1.4; }
  .entry-right { font-size: 13px; }
  .entry-right small { font-size: 12px; }
  .pill { font-size: 12px; min-height: 29px; padding: 5px 9px; }
  .empty-state { padding: 30px 18px 35px; }
  .empty-state h3 { font-size: 17px; }
  .empty-state p { font-size: 14px; }
  .filterbar { padding: 16px; gap: 12px; }
  .filterbar input, .filterbar select, .field input, .field select, .field textarea {
    font-size: 16px;
    min-height: 48px;
    min-width: 0;
    line-height: 1.35;
    padding: 11px 13px;
    max-width: 100%;
  }
  .field { min-width: 0; font-size: 15px; gap: 8px; }
  .field > span { font-size: 14px; line-height: 1.4; }
  .field textarea { line-height: 1.6; }
  .form-card { max-width: 100%; padding: 20px 17px; }
  .form-grid { gap: 17px; margin-bottom: 26px; }
  .form-section-title { font-size: 12px; letter-spacing: 1px; margin-bottom: 19px; }
  .form-section-title span { font-size: 15px; }
  .form-actions { gap: 10px; margin-top: 18px; padding-top: 18px; }
  .checkline, .asset-meta { font-size: 14px; line-height: 1.5; }
  .checkline input { width: 20px; height: 20px; flex-shrink: 0; }
  .asset-meta { gap: 9px 15px; margin: -8px 0 22px; overflow-wrap: anywhere; }
  .info-note { font-size: 14px; }
  .notes { font-size: 15px; padding: 0 18px 20px; overflow-wrap: anywhere; }
  .stacked-form { padding: 0 17px 22px; }
  .small { font-size: 13px; }
  .link-danger { font-size: 13px; min-height: 36px; }
  .alert { font-size: 14px; line-height: 1.5; }
  .dialog { width: calc(100vw - 24px); padding: 19px; }
  .dialog h2 { font-size: 22px; }
  .dialog p { font-size: 14px; line-height: 1.45; }
  .login-panel { padding: 29px 24px; }
  .login-panel h1 { font-size: clamp(30px, 8vw, 38px); }
  .login-panel p { font-size: 15px; }
  .login-panel small { font-size: 12px; line-height: 1.5; }
  .auth-shell { min-height: 100dvh; }
}

@media (max-width: 600px) {
  .page-heading { flex-direction: column; align-items: stretch; }
  .page-heading > .btn { width: 100%; }
  .dashboard-columns, .docs-layout { grid-template-columns: minmax(0, 1fr); }
  .stats-grid.three { grid-template-columns: 1fr; }
  .filterbar input, .filterbar select, .filterbar button { flex: 1 1 100%; min-width: 0; width: 100%; }
  .form-grid { grid-template-columns: minmax(0,1fr); }
  .field.wide, .wide { grid-column: auto; }
  .form-actions { flex-wrap: wrap; }
  .form-actions > .btn { flex: 1 1 auto; white-space: normal; text-align: center; }
  .inline-actions { gap: 9px; flex-wrap: wrap; }
  .entry {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 8px;
  }
  .entry-icon { grid-column: 1; grid-row: 1 / 3; }
  .entry-main { grid-column: 2; grid-row: 1; }
  .entry-right { grid-column: 2; grid-row: 2; flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 7px 9px; }
  .entry > .subtle-link { grid-column: 2; grid-row: 2; justify-self: start; }
  /* Present inventory and maintenance records as stacked, labelled cards. */
  .table-scroll { overflow: visible; }
  .data-table, .data-table tbody, .data-table tr { display: block; width: 100%; }
  .data-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .data-table tbody { padding: 12px; }
  .data-table tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 15px;
    background: #172638;
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 16px;
    margin-bottom: 12px;
  }
  .data-table tr:last-child { margin-bottom: 0; }
  .data-table td {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    border: 0;
    padding: 0;
    font-size: 14px;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.45;
    background: none;
    gap: 4px;
  }
  .data-table tr:hover td { background: none; }
  .data-table td::before {
    content: attr(data-label);
    display: block;
    color: #9aafbd;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .3px;
  }
  .data-table td:first-child { grid-column: 1 / -1; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
  .data-table td:first-child::before { display: none; }
  .data-table td:first-child .table-title { font-size: 16px; line-height: 1.3; }
  .data-table td small { font-size: 13px; margin-top: 0; }
  .data-table td:last-child { grid-column: 1 / -1; padding-top: 11px; border-top: 1px solid var(--line); }
  .data-table td:last-child .subtle-link { min-height: 42px; display: inline-flex; align-items: center; }
}

@media (max-width: 380px) {
  .content { padding-inline: 12px; }
  .topbar { padding-inline: 12px; gap: 8px; }
  .topbar-right { display: none; }
  .stats-grid { gap: 8px; }
  .metric { padding: 13px; }
  .metric-head { font-size: 11.5px; }
  .metric-value { font-size: 28px; }
  .metric-foot { font-size: 12px; }
  .panel-heading { gap: 8px; }
  .panel-heading h2 { font-size: 17px; }
  .data-table tbody { padding: 9px; }
  .data-table tr { padding: 13px; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar, .btn, .nav-link { transition: none !important; }
}

@media (hover: none) { .btn:hover { transform: none; } }

/* HomeOS v0.2 — External contacts, safety notices and release notes */
.caution-panel { border-color: rgba(232, 175, 76, .55); background: linear-gradient(135deg, rgba(238, 165, 48, .07), transparent 65%), var(--panel); }
.caution-panel .notes { overflow-wrap: anywhere; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; padding: 4px 20px 20px; }
.contact-card { background: #172638; border: 1px solid var(--line); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.contact-card strong { font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.contact-card small { font-size: 13px; color: #9aafbd; line-height: 1.45; overflow-wrap: anywhere; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.contact-actions a { font-size: 13px; min-height: 34px; display: inline-flex; align-items: center; overflow-wrap: anywhere; }
.contact-list { padding-top: 20px; }
.delete-contact { margin: 18px 0 0; text-align: right; }
.smtp-overview { display:grid; grid-template-columns: 170px minmax(0,1fr); gap: 12px 16px; padding: 15px 22px; margin: 0; }
.smtp-overview dt { font-size: 13px; color: #9aafbd; }
.smtp-overview dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.release-list { display: grid; gap: 0; padding: 4px 22px 20px; }
.release-list article { border-bottom: 1px solid var(--line); padding: 16px 0; }
.release-list article:last-child { border: 0; }
.release-list strong { font-size: 15px; }
.release-list p { color: #a9bac9; font-size: 14px; line-height: 1.65; margin: 8px 0 0; }
.footer a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
  .contact-grid { grid-template-columns: 1fr; padding: 4px 14px 14px; }
  .contact-card { padding: 16px; }
  .smtp-overview { grid-template-columns: 1fr; padding: 13px 16px; gap: 3px; }
  .smtp-overview dt:not(:first-child) { margin-top: 10px; }
  .release-list { padding: 4px 16px 12px; }
  .delete-contact { padding: 8px 0; }
}
