:root{--navy:#153d59;--navy2:#1d5275;--ink:#182d3c;--muted:#6b7c89;--line:#e1e8ed;--bg:#f4f7f9;--white:#fff;--teal:#16856d;--tealbg:#e8f6f1;--red:#b33d45;--shadow:0 5px 20px rgba(23,52,72,.055)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(22px,calc((100vw - 1180px)/2));gap:34px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.5px;white-space:nowrap}.brandmark,.login-logo{display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800;border-radius:11px;width:35px;height:35px}.topbar nav{display:flex;gap:24px;align-items:center;flex:1}.topbar nav a{font-size:13px;font-weight:650;color:#536877}.topbar nav a:hover{color:var(--navy)}.userarea{display:flex;align-items:center;gap:12px}.userarea form{margin:0}.userlabel{font-size:13px;font-weight:700}.page{max-width:1180px;margin:0 auto;padding:34px 24px 64px;min-height:calc(100vh - 120px)}.page-auth{display:grid;place-items:center;min-height:calc(100vh - 100px);padding:30px 18px}.footer{text-align:center;color:#8795a0;font-size:12px;padding:18px;border-top:1px solid var(--line);background:#fff}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:6px 0 26px}.page-heading h1{font-size:clamp(27px,4vw,36px);line-height:1.15;letter-spacing:-1.1px;margin:4px 0 9px;font-weight:780}.page-heading p{margin:0}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;color:#728896;margin:0 0 7px}.muted{color:var(--muted)}.small-note{font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 15px;border-radius:9px;border:1px solid transparent;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}.button-primary{background:var(--navy);color:#fff}.button-primary:hover{background:var(--navy2)}.button-secondary{background:#fff;border-color:#d7e1e7;color:var(--navy)}.button-secondary:hover{border-color:#9eb6c5;background:#fafdff}.button-quiet{background:transparent;color:#607482;border-color:transparent}.button-quiet:hover{background:#f0f4f6}.button-small{min-height:32px;padding:6px 10px;font-size:12px}.button-full{width:100%;margin-top:6px}.period-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.period-form label,.filter-bar label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:750;color:#667b89}.period-form input,.filter-bar input,.filter-bar select,input,select{border:1px solid #d8e2e8;border-radius:8px;padding:10px 11px;min-height:41px;background:#fff;color:var(--ink);min-width:0}.period-form input{min-width:142px}.center-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.center-card{display:block;background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px 20px 18px;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}.center-card:hover{transform:translateY(-2px);border-color:#b6cbd8}.card-icon{width:42px;height:42px;border-radius:12px;background:#edf4f8;display:grid;place-items:center;color:var(--navy);margin-bottom:18px}.card-icon svg{width:23px;height:23px}.card-title-row{display:flex;align-items:start;justify-content:space-between;gap:8px}.card-title-row h2{font-size:18px;margin:0;font-weight:760;letter-spacing:-.3px}.arrow{font-size:19px;color:#8195a1}.center-card>.muted{font-size:12px;margin:5px 0 22px}.progress-meta{display:flex;justify-content:space-between;font-size:11px;color:#6c7e89;margin-bottom:7px}.progress-meta strong{color:var(--ink);font-size:12px}.progress{height:6px;background:#eaf0f3;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:var(--teal);border-radius:10px}.card-bottom{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#748793;margin-top:14px}.button-text{font-weight:750;color:var(--navy)}.button-text b{font-size:15px;margin-left:4px}.empty-state{text-align:center;padding:56px 20px;background:#fff;border:1px dashed #ccd9e1;border-radius:15px}.empty-state h2{margin:5px 0 8px}.empty-state p{color:var(--muted);margin:0 0 20px}.empty-icon{font-size:36px;color:#7e9aab}.back-link{display:inline-block;color:#557487;font-size:13px;font-weight:700;margin-bottom:18px}.summary-strip{display:flex;align-items:center;gap:20px;padding:17px 20px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:19px}.summary-strip>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:95px}.summary-strip strong{font-size:19px}.summary-progress{flex:1}.summary-progress small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.category-list{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.category-row{display:flex;align-items:center;gap:15px;padding:17px 20px;border-bottom:1px solid var(--line);min-height:88px}.category-row:last-child{border-bottom:0}.category-row:hover{background:#fbfdfe}.category-symbol{width:43px;height:43px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:#edf4f8;color:var(--navy);font-size:26px;font-weight:700}.category-info{min-width:0;flex:1}.category-info h2{font-size:16px;margin:0 0 3px}.category-info p{font-size:12px;margin:0}.category-progress{width:115px}.reading-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.meter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.meter-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow);min-width:0}.meter-top{display:flex;align-items:center;gap:11px;margin-bottom:17px}.meter-icon{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;background:#edf4f8;border-radius:11px;color:var(--navy);font-size:24px;font-weight:750}.meter-name{min-width:0;flex:1}.meter-name h2{font-size:15px;line-height:1.3;margin:0 0 4px;overflow-wrap:anywhere}.meter-name p{font-size:11px;margin:0}.unit-chip{font-size:11px;font-weight:800;color:#607886;background:#f0f4f6;padding:5px 8px;border-radius:7px;white-space:nowrap}.meter-values{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.previous-value,.current-value{border-radius:10px;padding:12px;min-width:0}.previous-value{background:#f4f7f9;display:flex;flex-direction:column;gap:8px}.previous-value span,.current-value>span{font-size:11px;color:#71838f;font-weight:650}.previous-value strong{font-size:20px;letter-spacing:-.4px}.current-value{display:flex;flex-direction:column;gap:7px;background:#f0f8f5;border:1px solid #d7eee5}.number-input-wrap{display:flex;align-items:center;gap:5px}.number-input-wrap input{width:100%;padding:7px 5px;border:0;border-bottom:2px solid #9bcfbc;border-radius:0;background:transparent;font-size:20px;font-weight:750;outline:none;min-height:34px}.number-input-wrap input:focus{border-bottom-color:var(--teal)}.number-input-wrap input::placeholder{font-size:12px;font-weight:500;color:#9aaca5}.number-input-wrap>span{font-size:10px;color:#68857a}.note-label{display:flex;flex-direction:column;gap:6px;margin-top:12px;font-size:11px;font-weight:700;color:#637784}.note-label>span{display:inline;color:#8c9aa3;font-weight:400}.note-label input{width:100%;min-height:35px;padding:7px 9px;font-size:12px}.saved-hint{margin:9px 0 0;font-size:10px;color:var(--teal);font-weight:650}.sticky-save{position:sticky;bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 14px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 24px rgba(20,50,70,.13);margin-top:18px}.login-card{width:min(100%,390px);padding:34px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px rgba(22,56,77,.08)}.login-logo{width:48px;height:48px;font-size:22px;margin-bottom:24px;border-radius:14px}.login-card h1{font-size:30px;margin:0 0 7px;letter-spacing:-1px}.login-card>.muted{font-size:13px;margin:0 0 24px}.stack-form{display:flex;flex-direction:column;gap:15px}.stack-form label,.add-meter-form label,.add-category-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#506675}.stack-form input,.stack-form select,.add-meter-form input,.add-meter-form select,.add-category-form input{width:100%}.flashes{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.flash{padding:11px 14px;border-radius:9px;font-size:13px;background:#e8f6f1;color:#176a55;border:1px solid #cdeadd}.flash.error{background:#fff0ef;color:#a5323a;border-color:#f4d0ce}.filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:20px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px}.filter-bar label{min-width:145px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;color:#5e7482;font-size:10px;text-transform:uppercase;letter-spacing:.4px;background:#f7f9fa}td,th{padding:12px 14px;border-bottom:1px solid #e8edf0}tbody tr:last-child td{border-bottom:0}.table-empty{text-align:center;color:var(--muted);padding:30px}.admin-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:18px;align-items:start}.admin-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px;min-width:0}.section-heading h2{font-size:17px;margin:0 0 4px}.section-heading p{font-size:12px;margin:0 0 17px}.inline-create{display:flex;align-items:center;gap:7px;margin-bottom:10px}.inline-create input{width:100%;min-width:0}.inline-create input[type=number]{max-width:78px}.admin-items{border-top:1px solid var(--line);margin-top:12px}.admin-item{border-bottom:1px solid var(--line)}.admin-item>summary,.nested-item>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:14px 2px}.admin-item>summary::-webkit-details-marker,.nested-item>summary::-webkit-details-marker,.user-row>summary::-webkit-details-marker{display:none}.admin-item-name{font-size:13px;font-weight:750;flex:1;min-width:0;overflow-wrap:anywhere}.admin-item summary .muted{font-size:10px;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);flex-shrink:0}.status-dot.inactive{background:#a9b3ba}.chevron{color:#8496a1;transition:transform .15s}.details[open]>summary .chevron{transform:rotate(180deg)}.admin-item-body{padding:4px 0 16px}.nested-admin{margin:13px 0 0;padding:12px;background:#f7f9fa;border-radius:10px}.nested-admin h3{font-size:12px;margin:0 0 7px}.nested-item{border-bottom:1px solid #e2e9ed}.nested-item>summary{padding:11px 0}.nested-body{padding:3px 0 13px}.meter-admin-list{margin:8px 0}.meter-admin{border-bottom:1px solid #e4eaee}.meter-admin>summary{display:flex;align-items:center;gap:8px;padding:10px 2px;cursor:pointer;list-style:none;font-size:12px;font-weight:650}.meter-admin>summary span:nth-child(2){flex:1}.meter-admin>summary small{font-size:10px;color:var(--muted)}.compact-form{gap:9px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}.compact-form label{font-size:11px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.add-meter-form,.add-category-form{background:#fff;border:1px dashed #b9cbd5;border-radius:10px;padding:13px;margin-top:13px;display:flex;flex-direction:column;gap:10px}.add-meter-form h4,.add-category-form h4{margin:0;font-size:12px}.add-meter-form .button,.add-category-form .button{align-self:flex-start}.user-create{padding:14px;background:#f7f9fa;border-radius:10px;margin-bottom:15px;gap:11px}.user-create small{font-weight:400;color:var(--muted)}.user-list{border-top:1px solid var(--line)}.user-row{border-bottom:1px solid var(--line)}.user-row>summary{display:flex;align-items:center;gap:10px;list-style:none;padding:13px 0;cursor:pointer}.avatar{display:grid;place-items:center;width:34px;height:34px;background:#eaf1f5;color:var(--navy);border-radius:10px;font-weight:800}.user-details{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.user-details strong{font-size:12px}.user-details .muted{font-size:10px}.user-actions{padding:0 0 12px}.audit-section{margin-top:18px}.audit-section .table-wrap{margin-top:8px}
@media(max-width:900px){.center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:1fr}.meter-list{grid-template-columns:1fr}.topbar{gap:18px}.topbar nav{gap:14px}}@media(max-width:600px){.topbar{height:auto;min-height:60px;padding:10px 14px;gap:10px;flex-wrap:wrap}.brand{font-size:17px;gap:7px}.brandmark{width:31px;height:31px}.topbar nav{order:3;flex-basis:100%;gap:18px;border-top:1px solid #edf1f4;padding-top:8px}.topbar nav a{font-size:12px}.userarea{margin-left:auto;gap:5px}.userlabel{font-size:11px}.page{padding:22px 13px 45px}.page-heading{align-items:stretch;flex-direction:column;margin-bottom:19px;gap:15px}.page-heading h1{font-size:28px}.period-form{display:grid;grid-template-columns:1fr auto;align-items:end}.period-form label{grid-column:1/-1}.period-form input{width:100%}.center-grid{grid-template-columns:1fr;gap:11px}.center-card{padding:17px}.card-icon{margin-bottom:12px}.center-card>.muted{margin-bottom:17px}.summary-strip{gap:12px;padding:13px;flex-wrap:wrap}.summary-progress{min-width:100px}.summary-strip .button{padding:9px 10px}.category-row{padding:13px 11px;gap:10px;min-height:78px}.category-symbol{width:37px;height:37px}.category-info h2{font-size:14px}.category-info p{font-size:10px}.category-progress{width:54px}.category-row .arrow{font-size:16px}.reading-toolbar{align-items:flex-start}.reading-toolbar .button{font-size:12px;padding:9px 11px}.meter-card{padding:13px}.meter-values{gap:7px}.previous-value,.current-value{padding:10px}.previous-value strong{font-size:18px}.number-input-wrap input{font-size:19px}.sticky-save{bottom:7px;padding:9px}.sticky-save .muted{font-size:10px}.sticky-save .button{font-size:12px;padding:9px 10px}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label{width:100%}.filter-bar .button{width:100%}.admin-section{padding:13px}.inline-create{flex-wrap:wrap}.inline-create input:first-child{flex:1 1 100%}.inline-create input[type=number]{max-width:85px;flex:1}.inline-create .button{flex:0 0 auto}.admin-item>summary .muted{display:none}.nested-admin{padding:9px}.form-two{grid-template-columns:1fr 1fr}.login-card{padding:25px 21px}.footer{font-size:11px}}


/* FORUS arvestid logo — responsive */
.topbar {
    min-width: 0;
    gap: clamp(12px, 2vw, 28px);
}

.brand {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
    gap: 0;
}

.brand-logo {
    display: block;
    width: clamp(90px, 10vw, 120px);
    height: auto;
    max-height: 44px;
    max-width: 100%;
    object-fit: contain;
    flex-shrink: 1;
}

.topbar nav {
    min-width: 0;
}

@media (max-width: 600px) {
    .topbar {
        gap: 10px;
    }

    .brand-logo {
        width: clamp(84px, 25vw, 110px);
        max-height: 40px;
    }

    .topbar nav {
        flex-basis: 100%;
    }
}

/* History: keep the edit form floating above the table */

/* History: floating edit panel */
.table-wrap td details {
    position: static;
}

.table-wrap td details > form {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;

    width: min(360px, calc(100vw - 32px));
    min-width: 0 !important;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    box-sizing: border-box;

    margin: 0 !important;
    padding: 22px;
    background: #fff;
    border: 1px solid #d8e2eb;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(20, 45, 65, 0.22);
}

.table-wrap td details > form label {
    display: block;
    margin-bottom: 14px;
}

.table-wrap td details > form input {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin-top: 6px;
}

.table-wrap td details > form button {
    margin-top: 4px;
}

.table-wrap td details > summary {
    cursor: pointer;
}

/* Forus logo on the login page */
.login-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 24px;
}


/* Login page — consistent alignment */
.login-card {
    padding: 34px;
}

.login-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0 0 22px;
}

.login-brand-logo {
    display: block;
    width: 120px;
    height: 52px;
    object-fit: contain;
    object-position: left center;
}

.login-card .eyebrow {
    margin-bottom: 7px;
}

.login-card h1 {
    margin-top: 4px;
    margin-bottom: 9px;
}

.login-card > .muted {
    margin-bottom: 24px;
}
