:root{font-family:'DM Sans',sans-serif;color:#25302f;background:#f6f7f4;--ink:#25302f;--muted:#646f6a;--coral-strong:#c0533a;--coral-ink:#a8492f;--amber-ink:#8a5f16;--green-ink:#2a6f50;--blue-ink:#3a7489;--line:#e3e7e2;--paper:#f6f7f4;--white:#fff;--coral:#ee795f;--coral-soft:#ffebe3;--mint:#dff1e8;--green:#3f9d76;--amber:#e8b550;--navy:#273536}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,a,input,select{font:inherit}button{cursor:pointer;border:0}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:#fff;border-right:1px solid var(--line);padding:28px 17px 17px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font:700 22px 'Space Grotesk',sans-serif;letter-spacing:-1.1px;padding:0 11px 31px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;background:var(--navy);border-radius:8px;color:#fff;font:700 14px 'Space Grotesk'}.brand-suffix{color:var(--muted);font:600 14px 'DM Sans';letter-spacing:0;margin-left:4px}.company-switcher{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px}.company-logo{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:#ffede5;color:var(--coral-ink);font-size:13px;font-weight:700}.company-switcher b,.company-switcher small{display:block}.company-switcher b{font-size:14px}.company-switcher small{font-size:13px;color:var(--muted);margin-top:3px}.dots{margin-left:auto;color:var(--muted);letter-spacing:1px}.main-nav{display:grid;gap:3px;margin-top:26px}.main-nav.compact{margin-top:4px}.nav-item{height:40px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:600}.nav-item.active{background:#f0f3ef;color:var(--ink)}.nav-item em{margin-left:auto;font-style:normal;color:var(--muted);font-size:14px}.nav-item .alert-count{color:#e06d58;background:#ffebe3;padding:3px 6px;border-radius:8px}.nav-symbol{width:16px;text-align:center;font-size:17px;color:var(--muted)}.sidebar-section-label{font-size:13px;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin:28px 11px 5px}.sidebar-bottom{margin-top:auto}.support-card{display:flex;align-items:center;gap:9px;background:#f6f8f5;border-radius:8px;padding:12px 10px;margin:0 0 17px}.support-icon{display:grid;place-items:center;width:22px;height:22px;border:1px solid #c4d0c9;border-radius:50%;color:#759082;font-size:14px}.support-card b,.support-card small{display:block}.support-card b{font-size:13px}.support-card small{font-size:13px;color:var(--muted);margin-top:3px}.support-card>span:last-child{margin-left:auto;color:var(--muted)}.profile{border-top:1px solid var(--line);padding:16px 8px 0;display:flex;align-items:center;gap:9px}.avatar{display:grid;place-items:center;width:30px;height:30px;background:#d7e9df;border-radius:50%;font-size:13px;font-weight:700}.profile strong,.profile span{display:block}.profile strong{font-size:15px}.profile span{font-size:13px;color:var(--muted);margin-top:3px}.profile button{margin-left:auto;color:var(--muted);background:transparent;letter-spacing:2px}.main-content{width:100%;max-width:1500px;margin:auto;padding:0 48px 42px}.topbar{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:flex;gap:10px;color:var(--muted);font-size:13px}.breadcrumb strong{color:#58625e}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.topbar-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap}.topbar-meta strong{color:var(--ink);font-weight:700}.topbar-divider{color:#c7ceca}.top-actions{display:flex;align-items:center;gap:13px}.notification,.help{background:transparent;color:var(--muted);font-size:19px;position:relative}.notification i{position:absolute;right:0;top:0;width:5px;height:5px;border-radius:50%;background:var(--coral)}.help{width:23px;height:23px;border:1px solid #d6ded8;border-radius:50%;font-size:13px}.user-menu{background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 11px;color:#58625e;font-size:13px}.online{display:inline-block;width:6px;height:6px;border-radius:50%;background:#52b982;margin-right:5px}.down{font-size:15px;color:var(--muted);margin-left:10px}.welcome{display:flex;justify-content:space-between;align-items:end;padding:39px 0 31px}.eyebrow{color:var(--muted);font-size:14px;font-weight:500;margin:5px 0 0}.modal .eyebrow{margin:4px 0 12px}.auth-card .eyebrow{margin:6px 0 0}.welcome h1{font:600 37px 'Space Grotesk',sans-serif;letter-spacing:-1.8px;margin:0}.accent-dot{color:var(--coral)}.subtitle{color:var(--muted);font-size:13px;margin:10px 0 0}.primary-button{background:#fff;color:var(--ink);border:1px solid #cdd5d0;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;box-shadow:none}.primary-button span{font-size:14px;vertical-align:0;margin-right:4px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:340px;gap:14px}.metric{height:155px;border-radius:10px;padding:19px 21px;position:relative;overflow:hidden}.metric-dark{background:var(--navy);color:#fff}.metric-white{background:#fff;border:1px solid var(--line)}.metric-coral{background:var(--coral-soft)}.metric-mint{background:#d9eee5}.metric-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;letter-spacing:1px;font-weight:700}.metric-dark .metric-label{color:#b0c2b9}.metric strong{display:block;font:600 38px 'Space Grotesk',sans-serif;letter-spacing:-2px;margin-top:15px}.metric p{font-size:13px;color:var(--muted);margin:5px 0}.metric-dark p{color:#aebeb6}.warning-text{color:#d57950}.good-text{color:#398e6c}.metric-icon{font-size:16px;color:var(--muted)}.metric-chart{position:absolute;right:20px;bottom:20px}.chart-bars{display:flex;align-items:end;gap:4px;height:35px}.chart-bars i{display:block;width:4px;background:#c5dfd2;border-radius:4px;height:12px}.chart-bars i:nth-child(2){height:22px}.chart-bars i:nth-child(3){height:17px}.chart-bars i:nth-child(4){height:29px}.chart-bars i:nth-child(5){height:20px}.chart-bars i:nth-child(6){height:34px}.chart-bars i:nth-child(7){height:26px}.chart-line{width:90px;height:35px;background:linear-gradient(145deg,transparent 46%,#7bc69e 47%,#7bc69e 50%,transparent 51%) 0 0/18px 14px}.chart-rings{font-size:56px;line-height:35px;color:#efaf97;transform:rotate(-35deg)}.chart-spark{font-size:45px;color:#79ba9d;line-height:30px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px;margin-top:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px}.panel-header{display:flex;justify-content:space-between;align-items:start;padding:22px 23px 16px}.panel h2{font:600 16px 'Space Grotesk',sans-serif;letter-spacing:-.4px;margin:0}.panel-header p{font-size:13px;color:var(--muted);margin:6px 0 0}.panel-header-actions{display:flex;align-items:center;gap:10px;flex:none}.ghost-button{background:transparent;color:var(--muted);font-size:14px;padding:3px 0}.ghost-button span{color:var(--coral);font-size:16px;margin-left:5px}.outline-button span{color:inherit;font-size:14px;margin-left:5px}.schedule-list{padding:0 10px 9px}.schedule-row{width:100%;display:flex;align-items:center;gap:13px;text-align:left;background:#fff;border-top:1px solid #eff1ed;padding:13px 12px}.schedule-row:hover{background:#fafbf9}.date-block{width:34px;flex:none;text-align:center;color:var(--muted)}.date-block b,.date-block small{display:block}.overdue-panel{border-color:#f0c9bc}.overdue-panel .panel-header h2{color:var(--coral-ink)}.overdue-row{background:#fef4f1}.overdue-row:hover{background:#fce8e3}.date-block.overdue{color:var(--coral-ink)}.date-block b{font:600 18px 'Space Grotesk'}.date-block small{font-size:13px;letter-spacing:.8px;margin-top:2px}.date-block.today{color:var(--coral-strong)}.schedule-main{flex:1;min-width:0}.schedule-main strong,.schedule-main small{display:block}.schedule-main strong{font-size:15px}.schedule-main small{font-size:13px;color:var(--muted);margin-top:5px}.status{font-size:13px;letter-spacing:.5px;font-weight:700;padding:5px 7px;border-radius:5px}.danger{color:var(--coral-ink);background:#ffebe3}.upcoming{color:var(--green-ink);background:#e4f3eb}.neutral{color:var(--muted);background:#f0f2ef}.row-arrow{color:var(--muted);font-size:16px}.attention-panel{padding-bottom:18px}.attention-count{display:grid;place-items:center;background:#ffebe3;color:var(--coral-ink);border-radius:50%;height:22px;width:22px;font-size:13px;font-weight:700}.attention-list{padding:0 12px}.attention-row{width:100%;display:flex;align-items:center;text-align:left;gap:10px;background:#fff;padding:11px 9px;border-top:1px solid #eff1ed}.attention-row>span:nth-child(2){flex:1}.attention-row strong,.attention-row small{display:block}.attention-row strong{font-size:15px}.attention-row small{color:var(--muted);font-size:13px;margin-top:4px}.attention-row>span:last-child{color:var(--muted)}.attention-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;font-size:13px}.attention-icon.red{color:var(--coral-ink);background:#ffebe3}.attention-icon.amber{color:var(--amber-ink);background:#fff2ce}.attention-icon.blue{color:var(--blue-ink);background:#e7f0f4}.attention-icon.mint{color:#4f9d7e;background:#e4f3eb}.outline-button{background:#fff;color:var(--ink);border:1px solid #cdd5d0;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;box-shadow:none;margin:14px 21px 0}.lower-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px;margin-top:15px}.overdue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.overdue-grid.no-overdue{grid-template-columns:repeat(2,minmax(0,1fr))}.overdue-grid #overdue-list{max-height:280px;overflow-y:auto}
/* Töölaua ülemise rea paneelid (tegemata / tulevased / tehtud hooldused /
   tehtud väljakutsed) on ühesuguse välimusega: valge taust, sama rea
   kõrgus, kirja suurus ja loendi kõrgus (kerimisega). */
#overdue-grid .schedule-list{max-height:230px;overflow-y:auto}
#overdue-grid .schedule-row{padding:7px 12px;gap:9px;background:#fff}
#overdue-grid .schedule-row:hover{background:#fafbf9}
#overdue-grid .date-block b{font-size:13px}
#overdue-grid .date-block small{font-size:13px}
#overdue-grid .schedule-main strong{font-size:15px}
#overdue-grid .schedule-main small{font-size:13px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#overdue-grid .row-arrow{font-size:13px}
#recent-acts-list{max-height:320px;overflow-y:auto}
#overdue-grid .panel{background:#fff;border-color:var(--line)}
#overdue-grid .panel-header h2{color:var(--ink)}
#recent-completions-list .schedule-main small{font-size:13px;margin-top:2px}
#recent-completions-list .row-arrow{font-size:13px}.table-tools{display:flex;gap:8px;padding:0 22px 12px}.search-field{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;padding:0 9px;flex:1;color:var(--muted)}.search-field input{border:0;outline:0;width:100%;padding:8px 0;font-size:15px}.filter-button{background:#f5f7f4;border:1px solid var(--line);border-radius:6px;color:var(--muted);padding:0 10px;font-size:14px}.filter-button span{font-size:15px;margin-left:6px}.object-table{padding:0 10px 9px;max-height:420px;overflow-y:auto}.table-head,.object-row{display:grid;grid-template-columns:1.4fr 1fr .7fr 14px;gap:13px;align-items:center}.table-head{padding:8px 12px;color:var(--muted);font-size:13px;letter-spacing:.7px;position:sticky;top:0;z-index:1;background:#fff}.object-row{width:100%;text-align:left;background:#fff;border-top:1px solid #eff1ed;padding:12px}.object-row>span{font-size:13px;color:#65716b}.object-row small{display:block;color:var(--muted);font-size:13px;margin-top:4px}.object-name{display:flex!important;align-items:center;gap:9px}.object-name strong{color:var(--ink);font-size:15px}.object-dot{width:9px;height:9px;border-radius:50%;flex:none}.object-dot.green{background:#5cb789}.object-dot.amber{background:#e5b455}.object-status{border-radius:5px;padding:5px 6px!important;text-align:center;font-size:13px!important;font-weight:700}.healthy{background:#e4f3eb;color:var(--green-ink)!important}.critical{background:#ffebe3;color:var(--coral-ink)!important}.journal-list{padding:0 12px}.journal-row{display:flex;align-items:center;gap:10px;padding:13px 9px;border-top:1px solid #eff1ed}.journal-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;font-size:14px}.journal-icon.coral{background:#ffebe3;color:var(--coral-ink)}.journal-icon.mint{background:#e4f3eb;color:#4e9a78}.journal-icon.blue{background:#e7f0f4;color:#688b9c}.journal-row>span:nth-child(2){flex:1}.journal-row strong,.journal-row small{display:block}.journal-row strong{font-size:15px}.journal-row small{font-size:13px;color:var(--muted);margin-top:4px}.journal-type{font-size:13px;color:var(--muted);letter-spacing:.4px}.add-entry{background:#f8faf7;color:var(--muted);width:calc(100% - 42px);margin:8px 21px 17px;padding:9px;border-radius:6px;font-size:13px}.page-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;padding:22px 3px}.sync-dot{display:inline-block;background:#56b681;width:6px;height:6px;border-radius:50%;margin-right:5px}.modal-backdrop{display:none;position:fixed;inset:0;background:#24302f73;align-items:center;justify-content:center;padding:20px;z-index:5}.modal-backdrop.open{display:flex}.modal{position:relative;background:#fff;border-radius:10px;padding:29px;width:min(450px,100%);box-shadow:0 20px 60px #1e292633}.modal h2{font:600 25px 'Space Grotesk';margin:0}.modal-copy{font-size:14px;color:var(--muted);line-height:1.5;margin:9px 0 22px}.modal label{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-top:13px}.modal select,.modal input{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:6px;padding:10px;background:#fff;color:var(--ink);font-size:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-close{position:absolute;right:17px;top:14px;background:transparent;color:var(--muted);font-size:24px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:26px}.cancel-button{background:transparent;color:var(--muted);font-size:14px;padding:0 12px}.modal .primary-button{box-shadow:none}.toast{position:fixed;right:25px;bottom:24px;background:var(--navy);color:#fff;border-radius:7px;padding:12px 16px;font-size:13px;opacity:0;transform:translateY(7px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}@media(max-width:1100px){.sidebar{width:215px}.main-content{padding:0 28px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-coral,.metric-mint{margin-top:0}}.menu-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:7px;width:34px;height:34px;font-size:15px;color:var(--ink);flex:none}
/* .collapsed on desktop näitab ainult ikoone (vt allpool min-width:761px
   plokki) — mobiilis (off-canvas sahtel) näidatakse alati täisversiooni,
   sest seal ei konkureeri menüü põhisisuga ruumi pärast. */
@media(min-width:761px){
  .sidebar.collapsed{width:64px;padding:20px 8px}
  .sidebar.collapsed .brand{padding:0 0 22px;justify-content:center}
  .sidebar.collapsed .brand>span:not(.brand-mark){display:none}
  .sidebar.collapsed .company-switcher{padding:8px;justify-content:center;gap:0}
  .sidebar.collapsed .company-switcher>span:not(.company-logo){display:none}
  .sidebar.collapsed .nav-item{justify-content:center;gap:0;padding:0;font-size:0}
  .sidebar.collapsed .nav-symbol{font-size:17px}
  .sidebar.collapsed .sidebar-section-label{display:none}
  .sidebar.collapsed .main-nav.compact{margin-top:10px}
  .sidebar.collapsed .profile{justify-content:center;padding:16px 0 0}
  .sidebar.collapsed .profile a{display:none}
}
.app-shell>.akt-shell{flex:1;min-width:0}
.sidebar-backdrop{display:none}
@media(max-width:760px){
  .menu-toggle{display:block;margin-right:10px}.topbar-meta{display:none}
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:21;transform:translateX(-100%);transition:transform .25s ease;width:250px}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 40px #1e29264d}
  .sidebar-backdrop{display:none;position:fixed;inset:0;background:#24302f73;z-index:20}
  .sidebar-backdrop.open{display:block}.main-content{padding:0 16px 32px}.topbar{height:68px}.user-menu{font-size:0;padding:8px}.user-menu .online{margin:0}.welcome{align-items:start;flex-direction:column;gap:23px;padding:31px 0 26px}.welcome h1{font-size:30px}.dashboard-grid,.lower-grid,.overdue-grid{grid-template-columns:1fr}.metric-grid{gap:10px}.metric{height:143px;padding:17px}.table-head{display:none}.object-row{grid-template-columns:1fr auto;gap:9px}.object-row>span:nth-child(2){grid-column:1}.object-row>span:nth-child(3){grid-column:2;grid-row:1}.object-row>span:last-child{display:none}.page-footer{gap:10px;line-height:1.5}.page-footer span:last-child{white-space:nowrap}.schedule-row{padding:12px 6px;gap:9px}.status{font-size:13px}.panel-header{padding:19px 17px 14px;flex-wrap:wrap;gap:10px}.panel-header-actions{width:100%;justify-content:flex-end}}

/* Päise "Kinnitamata aktid" nupp ja mustandite loend — nupp on nähtaval
   ainult siis, kui mustandeid on (app.js seab [hidden]), ja avab modaali,
   kus iga rida viib akti täitmisvormi (akt-lisa3.html?act=...). */
.pending-acts-button{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #cdd5d0;border-radius:6px;padding:6px 11px;color:var(--ink);font-size:13px;font-weight:600}
.pending-acts-button:hover{background:#fef4f1}
.pending-acts-button[hidden]{display:none}
.pending-acts-symbol{font-size:13px;color:#dd7f64}
.pending-acts-count{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ffebe3;color:var(--coral-ink);font-size:13px;font-weight:700}
.pending-acts-modal{width:min(520px,100%)}
.pending-acts-list{padding:6px 0 0;max-height:min(52vh,380px);overflow-y:auto}
.pending-acts-list .schedule-row:first-child{border-top:0}
@media(max-width:760px){.pending-acts-text{display:none}.pending-acts-button{padding:8px 9px}}

/* Partnerifilter (objektide nimekiri, hooldusgraafik). */
.partner-filter{border:1px solid var(--line);border-radius:6px;background:#fff;color:#58625e;padding:7px 9px;font-size:13px;max-width:220px}
/* Töölaua ülemine rida: tegemata / tulevased / tehtud hooldused / tehtud väljakutsed */
.overdue-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.overdue-grid.no-overdue{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1300px){.overdue-grid,.overdue-grid.no-overdue{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.overdue-grid,.overdue-grid.no-overdue{grid-template-columns:minmax(0,1fr)}}
/* Paneel ja selle read ei tohi sisu (nt üherealine kärbitud tekst) tõttu ekraanist laiemaks venida. */
.overdue-grid > .panel{min-width:0}
.overdue-grid .schedule-row{min-width:0;max-width:100%}
/* Töölaua ülemise rea paneelide +/- kokkupakkimine — ainult mobiilis (vt app.js setupDashboardCollapse) */
.dashboard-collapse-toggle{display:none}
@media(max-width:760px){
  .overdue-grid .panel-header{flex-wrap:nowrap;align-items:center}
  .overdue-grid .panel-header > div:first-child{flex:1;min-width:0;cursor:pointer}
  .dashboard-collapse-toggle{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font-size:15px;font-weight:700;line-height:1;padding:0}
  .overdue-grid .panel.mobile-collapsed > :not(.panel-header){display:none!important}
  .overdue-grid .panel.mobile-collapsed > .panel-header{padding-bottom:19px}
  .overdue-grid .panel.mobile-collapsed .panel-header p{display:none}
}
/* Menüü "Objektid" (vt app.js applyDashboardView): ainult objektide nimekiri */
body.view-objects #overdue-grid,body.view-objects #recent-acts-panel{display:none!important}
body.view-objects #objects{margin-top:15px!important}
body.view-objects .object-table{max-height:none}
/* Objektide nimekirja hoiatused (vt app.js buildObjectWarnings) */
.object-flags{display:flex;flex-direction:column;gap:4px;align-items:stretch}
.object-note-flag{background:#fff2ce;color:var(--amber-ink)!important}
.object-row small.object-warn{color:var(--coral-ink);font-weight:600}
.object-row small.object-note{color:var(--amber-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
@media(max-width:760px){.object-row small.object-note{max-width:62vw}}

/* Otsinguga objekti valik (objekti-otsing.js): asendab pika rippmenüü. */
.oo-wrap{margin-top:6px}
.oo-field{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 8px 0 10px}
.oo-field:focus-within{border-color:#9ab6d8;box-shadow:0 0 0 2px #9ab6d833}
.oo-icon{color:var(--muted);font-size:14px}
.modal .oo-field input.oo-input,.oo-input{flex:1;min-width:0;border:0!important;outline:0;margin:0!important;padding:10px 0!important;background:transparent;font-size:16px;color:var(--ink);font-weight:500}
.oo-clear{background:transparent;border:0;color:var(--muted);font-size:20px;line-height:1;padding:2px 4px;cursor:pointer}
.oo-clear[hidden],.oo-list[hidden]{display:none}
.oo-list{border:1px solid var(--line);border-radius:6px;margin-top:4px;max-height:min(45vh,300px);overflow-y:auto;background:#fff}
.oo-row{display:block;width:100%;text-align:left;background:#fff;border:0;border-top:1px solid #eff1ed;padding:11px 12px;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;line-height:1.35}
.oo-row:first-child{border-top:0}
.oo-row.on,.oo-row:hover{background:#f0f3ef}
.oo-row.selected{font-weight:700}
.oo-empty{margin:0;padding:10px 12px;font-size:14px;color:var(--muted);font-weight:500}

/* Lingina tehtud nupud ei ole allajoonitud (nt „Täida uus ATS akt”). */
a.primary-button,a.outline-button,a.ghost-button{text-decoration:none}

/* Telefonis: kõik puutealad vähemalt 44 px (välitöö, kinda või märja
   sõrmega) ja linnukesed piisavalt suured. Kehtib kõigil lehtedel. */
@media(max-width:760px){
  .primary-button,.outline-button,.ghost-button,.cancel-button,.delete-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center}
  .akt-back{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
  .menu-toggle{width:44px;height:44px}
  .object-tab{min-height:44px}
  .akt-radio,.akt-checkbox,.check-toggle button{min-height:44px}
  select,input:not([type=checkbox]):not([type=radio]):not([type=hidden]){min-height:44px}
  input[type=checkbox],input[type=radio]{width:20px;height:20px}
  .dashboard-collapse-toggle{min-width:44px;min-height:44px}
}

/* Tühja loendi tekst (töölaua paneelid), joondatud paneeli pealkirjaga. */
.panel-empty{padding:12px 23px 18px;margin:0;font-size:14px;line-height:1.45;color:var(--muted)}

/* Töölaud telefonis: kõigepealt tegemata ja tulevased hooldused, siis
   objektid (otsing + uus objekt); ajalugu lõpus ja tühjana peidus. */
@media(max-width:760px){
  #dashboard{display:flex;flex-direction:column}
  #dashboard>.overdue-grid{display:contents}
  #dashboard .panel{margin-top:12px!important}
  #overdue-panel{order:1}
  #upcoming-panel{order:2}
  #objects{order:3}
  #recent-completions-panel{order:4}
  #recent-callouts-panel{order:5}
  #recent-acts-panel{order:6}
  #dashboard>.page-footer{order:7}
  #recent-completions-panel:has(#recent-completions-empty:not([hidden])),
  #recent-callouts-panel:has(#recent-callouts-empty:not([hidden])),
  #recent-acts-panel:has(#recent-acts-empty:not([hidden])){display:none}
}

/* Kuupäevakast mahutab suurema kirja (nt „8 JAAN”). */
.date-block,#upcoming-list .date-block,#recent-completions-list .date-block{width:auto;min-width:44px}

/* Peidetud (hidden) element jääb alati peidetuks, ka siis, kui nupu stiil
   annab sellele display väärtuse (nt telefoni 44 px reegel ülal). */
[hidden]{display:none!important}

/* Ettevõtte nime soovitused Äriregistrist (ariregister-otsing.js) —
   avalehe ettevõtte konto loomine ja Admin → Ettevõtte andmed. */
.arireg-wrap{position:relative}
.arireg-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #1e292624;max-height:300px;overflow-y:auto}
.arireg-list li{padding:9px 10px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--ink);line-height:1.35}
.arireg-list li.active,.arireg-list li:hover{background:#f0f3ef}
.arireg-list li small{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:2px}
.arireg-list li em{font-style:normal;font-size:13px;color:var(--coral-ink)}
.arireg-status{font-size:13px;color:var(--muted);margin:6px 0 0;font-weight:500}
.arireg-status.success{color:var(--green-ink)}

/* Konto kustutamine (konto-kustutamine.js) — profiil.html ja admin.html. */
.danger-zone{display:flex;flex-direction:column;gap:14px}
.danger-warning{margin:0;padding:12px 14px;border-radius:8px;background:#fff4f0;border:1px solid #f4c9ba;color:var(--ink);font-size:14px;line-height:1.5}
.danger-step{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #eff1ed}
.danger-step>b{font-size:14px;color:var(--ink)}
.danger-step label b{color:var(--ink)}
.danger-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.danger-actions .outline-button{margin:0;color:var(--ink)}
.danger-button{min-height:32px;padding:0 12px;font-weight:600}
.danger-button:disabled{opacity:.45;cursor:not-allowed}

/* Admin → Partnerid (admin.js loadPartners). */
.partner-list{display:flex;flex-direction:column}
.partner-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #eff1ed}
.partner-row:first-child{border-top:0}
.partner-row>span:first-child{flex:1;min-width:0}
.partner-row b{font-size:15px;color:var(--ink)}
.partner-row small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.partner-row .outline-button{margin:0;color:var(--ink)}
.partner-list .pill,.partner-row .pill{display:inline-block;border-radius:5px;padding:3px 7px;font-size:13px;font-weight:700;white-space:nowrap}
.partner-row .pill.ok{background:#e4f3eb;color:var(--green-ink)}
.partner-row .pill.warn{background:#fff2ce;color:var(--amber-ink)}
.partner-row .pill.neutral{background:#f0f2ef;color:var(--muted)}
.partner-form{display:flex;flex-direction:column;gap:12px;margin-top:6px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fafbf9}
.partner-form-title{font:600 16px 'Space Grotesk',sans-serif;margin:0}
.partner-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media(max-width:560px){.partner-row{flex-wrap:wrap}.partner-row>span:first-child{flex-basis:100%}}
.partner-form-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.partner-form-head .outline-button{margin:0;color:var(--ink)}

/* Logo väli (Admin → Ettevõtte andmed / Partnerid). */
.logo-field{display:flex;flex-direction:column;gap:8px}
.logo-label{font-size:13px;font-weight:700;color:var(--muted)}
.logo-box{display:flex;align-items:center;min-height:64px;padding:10px 12px;border:1px dashed #c9d2cc;border-radius:8px;background:#fff}
.logo-box img{max-height:60px;max-width:260px;object-fit:contain}
.logo-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.logo-actions .outline-button{margin:0;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center}

/* Admin → Aktide nummeratsioon (admin.js loadNumbering). */
.numbering-list{display:flex;flex-direction:column}
.numbering-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(170px,1.2fr) minmax(120px,.8fr) auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid #eff1ed}
.numbering-row:first-child{border-top:0}
.numbering-label b{display:block;font-size:15px;color:var(--ink)}
.numbering-label small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.numbering-row input{margin:0!important;font-family:ui-monospace,Consolas,monospace;font-size:14px}
.numbering-example{font-family:ui-monospace,Consolas,monospace;font-size:14px;color:var(--green-ink);word-break:break-all}
.numbering-row.invalid input{border-color:#eba48f;background:#fff4f0}
.numbering-row.invalid .numbering-example{color:var(--coral-ink)}
.numbering-add{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.numbering-add label{flex:0 0 180px}
.numbering-add .outline-button{margin:0;color:var(--ink)}
#numbering-tokens code{background:#f0f3ef;border-radius:4px;padding:1px 5px;font-size:13px}
@media(max-width:640px){.numbering-row{grid-template-columns:1fr auto}.numbering-row input{grid-column:1/-1}.numbering-example{grid-column:1/-1}}

/* Ühine päiseriba ja kasutaja menüü (app-header.js) — kõigil lehtedel. */
.app-topbar{height:64px;margin:-14px 0 18px}
.akt-shell>.app-topbar .topbar-left{min-width:0}
.akt-shell>.app-topbar .breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-topbar .pending-acts-button{text-decoration:none}
.user-menu-wrap{position:relative}
.user-menu{cursor:pointer}
.user-dropdown{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px #1e292624;padding:6px;display:flex;flex-direction:column}
.user-dropdown[hidden]{display:none}
.user-dropdown-who{padding:8px 10px 10px;border-bottom:1px solid #eff1ed;margin-bottom:4px}
.user-dropdown-who strong{display:block;font-size:15px;color:var(--ink)}
.user-dropdown-who small{display:block;font-size:13px;color:var(--muted);margin-top:2px;word-break:break-all}
.user-dropdown a,.user-dropdown button{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:10px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;cursor:pointer;min-height:40px}
.user-dropdown a:hover,.user-dropdown button:hover{background:#f0f3ef}
.user-dropdown [data-logout]{color:var(--coral-ink)}
@media(max-width:760px){.app-topbar{height:56px;margin:-8px 0 12px}.app-topbar .topbar-left{display:none}.app-topbar{justify-content:flex-end}.user-dropdown{right:0}}
@media print{.app-topbar{display:none!important}}

/* Külgmenüü (sidebar-nav.js): lauaarvutis alati nähtav ja kerimisel paigal,
   allservas « / » nupp kokkupanekuks (olek jääb meelde). */
.sidebar-collapse-btn{margin-top:auto;display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;text-align:left}
.sidebar-collapse-btn:hover{background:#f0f3ef;color:var(--ink)}
@media(min-width:761px){
  .sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .18s ease,padding .18s ease}
  .sidebar.collapsed .sidebar-collapse-btn{justify-content:center;padding:0}
  .sidebar.collapsed .sidebar-collapse-label{display:none}
}
@media(max-width:760px){.sidebar-collapse-btn{display:none}}

.new-badge{display:inline-block;vertical-align:2px;margin-left:6px;padding:2px 6px;border-radius:5px;background:var(--coral-strong);color:#fff;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.new-badge.waiting{background:#fdf1da;color:var(--amber-ink)}
.status.waiting{background:#fdf1da;color:var(--amber-ink)}
.pending-acts-button.needs-mine{border-color:var(--coral-strong);background:#fff7f4}

/* Nupud: üks värv ja väiksem suurus kõigil lehtedel (primary/outline/delete). */
.primary-button:hover,.outline-button:hover,.delete-button:hover{background:#f0f3ef;border-color:#b5c0ba}
.primary-button:disabled,.outline-button:disabled,.delete-button:disabled{opacity:.5;cursor:not-allowed}

/* Telefonis: objekti rea staatusmärgid (Tegemata / Märkus) nime all ühes
   reas, et need ei kataks teksti ega läheks serva taha. */
@media(max-width:760px){
  .object-row{grid-template-columns:minmax(0,1fr)}
  .object-row>span{min-width:0}
  .object-row>span:nth-child(3){grid-column:1;grid-row:auto}
  .object-row .object-flags{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}
  .object-row .object-flags .object-status{white-space:nowrap}
}

/* Töölaua "Tulevased hooldused" päises nupp kalendrisse. */
.upcoming-calendar-link{margin:0;padding:5px 10px;font-size:13px;white-space:nowrap;text-decoration:none}
@media(max-width:760px){
  #upcoming-panel .panel-header-actions{width:auto;flex:none}
}

/* Ettevõtte vahetamine külgmenüüs (organisation.js setupSwitcher). */
.company-switcher.switchable{position:relative;cursor:pointer}
.company-switcher.switchable:hover{background:#fafbf9;border-color:#cdd5d0}
.company-switcher.switchable:focus-visible{outline:2px solid #9ab6d8;outline-offset:1px}
.org-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:max(100%,250px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #1e292626;padding:6px;cursor:default}
.org-menu-label{margin:4px 8px 6px;font-size:12px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.org-menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border-radius:7px;padding:8px;color:var(--ink)}
.org-menu-item:hover{background:#f3f5f2}
.org-menu-item.on{background:#eef2ef}
.org-menu-logo{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:7px;background:var(--coral-soft);color:var(--coral-ink);font-size:12px;font-weight:700}
.org-menu-name{flex:1;min-width:0}
.org-menu-name b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.org-menu-name small{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.org-menu-check{color:var(--green-ink);font-weight:700}
.org-menu-new{display:block;margin-top:4px;border-top:1px solid var(--line);padding:10px 8px 6px;font-size:14px;font-weight:600;color:var(--blue-ink);text-decoration:none}
.org-menu-new:hover{text-decoration:underline}

/* Töölaud: planeeritud tööd (app.js loadPlannedWorks) ja kompaktne
   objektide kiirvaade kõrvuti. Menüüs „Objektid” on nimekiri täislaiuses. */
.dashboard-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px;align-items:start}
.dashboard-split>.panel{min-width:0}
#planned-works-list{max-height:330px;overflow-y:auto}
#planned-works-list .schedule-row{padding:7px 12px;gap:9px}
#planned-works-list .schedule-main small{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.schedule-row{text-decoration:none;color:inherit}
body:not(.view-objects) #objects .object-table{max-height:330px;overflow-x:hidden}
@media(min-width:761px){body:not(.view-objects) #objects .table-head,body:not(.view-objects) #objects .object-row{grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) auto 14px;gap:10px}}
body:not(.view-objects) #objects .object-row{padding:7px 12px}
body:not(.view-objects) #objects .object-name strong{font-size:14px}
body:not(.view-objects) #objects .object-row small{margin-top:2px}
body:not(.view-objects) #objects .object-status{padding:3px 6px!important}
body.view-objects .dashboard-split{display:block;margin-top:0}
body.view-objects #planned-works-panel,body.view-objects .objects-all-link{display:none!important}
.objects-all-link{font-size:13px;white-space:nowrap;text-decoration:none}
@media(max-width:1100px){.dashboard-split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  #dashboard>.dashboard-split{display:contents}
  #planned-works-panel,#objects{order:3}
  #planned-works-panel:has(#planned-works-empty:not([hidden])){display:none}
}

/* Objektide „Näita kõiki” link ainult telefonis (vt app.js applyObjectFilters). */
.objects-more{display:none}
/* Töölaud telefonis: paneelide sisu on täies pikkuses lehel (mitte väikestes
   sisemistes kerimisakendes) ja tekst murdub, mitte ei lõigata „…”-ga. */
@media(max-width:760px){
  #overdue-grid .schedule-list,#overdue-grid #overdue-list,#planned-works-list,#recent-acts-list,body:not(.view-objects) #objects .object-table{max-height:none;overflow:visible}
  #overdue-grid .schedule-main small,#planned-works-list .schedule-main small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .schedule-main strong{overflow-wrap:anywhere}
  .object-row small.object-note{white-space:normal;max-width:none;overflow-wrap:anywhere}
  .table-tools{flex-wrap:wrap;padding:0 17px 12px}
  .table-tools .search-field,.table-tools .partner-filter{flex:1 1 100%;max-width:none}
  .breadcrumb [data-org],.breadcrumb>span:nth-child(2){display:none}
  .breadcrumb strong{font-size:15px}
  #planned-works-panel .panel-header{flex-wrap:nowrap;align-items:center}
  #planned-works-panel .panel-header>div:first-child{flex:1;min-width:0;cursor:pointer}
  #planned-works-panel .panel-header-actions,#overdue-grid .panel-header-actions{width:auto}
  #planned-works-panel.mobile-collapsed>:not(.panel-header){display:none!important}
  #planned-works-panel.mobile-collapsed>.panel-header{padding-bottom:19px}
  #planned-works-panel.mobile-collapsed .panel-header p{display:none}
  .objects-more{display:block;margin:2px 17px 14px;padding:11px;border:1px solid var(--line);border-radius:7px;text-align:center;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none}
  .objects-more[hidden]{display:none}
}
.upcoming-calendar-link{display:inline-flex;align-items:center;gap:5px}.upcoming-calendar-link span{margin:0}
/* Põhisisu ei tohi oma sisu laiuse tõttu menüü kõrval lehest laiemaks minna (tahvel 761–1100 px). */
.main-content{min-width:0}
@media(min-width:761px){body.view-objects .table-head,body.view-objects .object-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.7fr) 14px}}
.object-table{overflow-x:hidden}
.object-name>span{min-width:0;overflow-wrap:anywhere}
.object-row small.object-note{max-width:100%}
@media(max-width:1180px){.topbar-meta{display:none}}
