@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
:root{--bg:#f6f3ec;--paper:#fffdf9;--warm:#faf7ef;--line:#e5dfd0;--soft:#eee9db;
--ink:#1e2a38;--i1:#22231f;--i2:#4a4d47;--i3:#6d7169;--i4:#969a92;
--acc:#1a3e8c;--accs:#e9eefa;--good:#0b6b3e;--warn:#9b5a14;--bad:#9c2a1c;--gold:#b48a3c;
--serif:"Fraunces",Georgia,serif;--sans:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--mono:"JetBrains Mono",Menlo,monospace;
--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--i1);
font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
a{color:inherit;text-decoration:none}
.hide{display:none!important}

/* ---- LUKUEKRAAN ---- */
#lock{position:fixed;inset:0;z-index:900;background:#a3150b;color:#fff;
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:32px}
#lock .mark{width:96px;height:96px;border-radius:24px;border:2px solid #c59b4a;
display:grid;place-items:center;font:700 40px var(--serif);color:#f6f3ec;letter-spacing:1px}
#lock h1{font:600 20px var(--serif);margin:0;letter-spacing:-.01em}
#lock p{margin:0;font-size:13px;color:#f0c4bd;text-align:center;max-width:280px;line-height:1.5}
.bigbtn{width:100%;max-width:300px;padding:16px;border-radius:14px;border:0;
background:#f6f3ec;color:var(--ink);font:600 16px var(--sans);cursor:pointer}
.bigbtn.ghost{background:transparent;color:#f0c4bd;border:1px solid #c94a3c;font-weight:500}
.pinin{width:100%;max-width:300px;padding:15px;border-radius:14px;border:1px solid #c94a3c;
background:#800e05;color:#fff;font:500 17px var(--mono);text-align:center;letter-spacing:2px;outline:none}
.pinin:focus{border-color:#c59b4a}
.err{color:#ffd9d2;font-size:13px;min-height:18px}

/* ---- PÄIS ---- */
header{position:sticky;top:0;z-index:50;background:rgba(246,243,236,.94);
backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line);
padding:calc(var(--safe-t) + 12px) 16px 10px}
.hrow{display:flex;align-items:baseline;gap:9px}
.hrow b{font:600 18px var(--serif);letter-spacing:-.01em}
.hrow span{font:400 10.5px var(--mono);color:var(--i4);margin-left:auto}
.alert{margin:10px 16px 0;padding:12px 14px;border-radius:13px;background:#fbe5e0;
border:1px solid #e8a99c;color:#7d2317;font-size:13.5px;line-height:1.4}
.alert b{display:block;font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.alert.warn{background:#faecd4;border-color:#dcbb85;color:#7a4710}
main{padding:14px 16px calc(var(--safe-b) + 76px)}
h2.sec{font:600 13px var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--i4);margin:22px 0 10px}
h2.sec:first-child{margin-top:4px}

/* ---- PÄEVAD ---- */
.day{margin-bottom:9px}
.dhd{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}
.dhd b{font:600 13px var(--serif)}
.dhd span{font:400 10.5px var(--mono);color:var(--i4)}
.dhd.today b{color:var(--acc)}
.ev{display:block;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--i4);
border-radius:11px;padding:11px 13px;margin-bottom:6px}
.ev .t{font-size:14px;font-weight:500;line-height:1.35}
.ev .m{font-size:11.5px;color:var(--i3);margin-top:3px;line-height:1.4}
.ev .h{font:500 11px var(--mono);color:var(--acc);margin-right:6px}
.ev.deadline{border-left-color:var(--bad);background:#fdf3f1}
.ev.payment{border-left-color:var(--warn);background:#fdf7ec}
.ev.stay{border-left-color:#0e7490;background:#eef7f9}
.ev.event{border-left-color:var(--acc)}
.empty{color:var(--i4);font-size:13px;padding:14px;text-align:center;border:1px dashed var(--line);border-radius:12px}

/* ---- JUHTUMID ---- */
.case{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:13px 14px;margin-bottom:8px}
.case .ct{font-size:14px;font-weight:600;line-height:1.35;margin-bottom:5px}
.case .ci{font-size:12.5px;color:var(--i3);line-height:1.45}
.case .cn{font-size:12.5px;color:var(--i1);margin-top:7px;padding-top:7px;border-top:1px solid var(--soft)}
.case .cn b{color:var(--acc);font-weight:600}
.dot{display:inline-block;width:7px;height:7px;border-radius:99px;margin-right:7px;vertical-align:1px}
.dot.open{background:var(--bad)}.dot.wait{background:var(--warn)}.dot.ok{background:var(--good)}

/* ---- PROJEKTID ---- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:14px;
padding:13px;overflow:hidden;cursor:pointer}
.pcard::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--kc)}
.pcard .pe{font-size:20px;line-height:1;margin-bottom:7px}
.pcard .pn{font:600 14px/1.25 var(--serif);margin-bottom:4px}
.pcard .pm{font:400 10.5px var(--mono);color:var(--i4)}
.pcard .badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.bdg{font:600 9px var(--mono);padding:2px 6px;border-radius:4px}
.bdg.o{background:#fbe5e0;color:var(--bad)}.bdg.n{background:#e3f1ea;color:var(--good)}
.bdg.l{background:#eceae5;color:var(--i3)}

/* ---- DETAIL ---- */
.back{display:inline-flex;align-items:center;gap:6px;font:500 13px var(--sans);color:var(--i3);
background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 13px;margin-bottom:14px;cursor:pointer}
.ptitle{font:600 21px/1.2 var(--serif);margin:0 0 3px;letter-spacing:-.015em}
.psub{font:400 11px var(--mono);color:var(--i4);margin-bottom:16px}
.main-l{display:block;background:linear-gradient(150deg,color-mix(in srgb,var(--kc) 9%,var(--paper)),var(--paper) 65%);
border:1px solid color-mix(in srgb,var(--kc) 40%,var(--line));border-radius:14px;padding:14px;margin-bottom:8px}
.main-l .ml{font:600 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--i4);margin-bottom:5px}
.main-l .mt{font:600 15px var(--serif);margin-bottom:3px}
.main-l .mn{font-size:11.5px;color:var(--i3)}
.frow{display:flex;gap:10px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);
border-radius:11px;padding:10px 12px;margin-bottom:6px}
.ext{font:600 8.5px var(--mono);padding:3px 5px;border-radius:4px;flex:none;margin-top:2px}
.ext.html{background:var(--accs);color:var(--acc)}
.ext.pdf{background:#fbe5e0;color:var(--bad)}
.ext.xlsx,.ext.csv{background:#e3f1ea;color:var(--good)}
.ext.docx{background:var(--accs);color:var(--acc)}
.ext.pptx{background:#faecd4;color:var(--warn)}
.frow .fn{font-size:13px;font-weight:500;line-height:1.3}
.frow .fp{font:400 10px var(--mono);color:var(--i4);margin-top:2px;word-break:break-all}
.frow .fd{font:400 10px var(--mono);color:var(--i4);flex:none;margin-top:2px}
.more{width:100%;padding:12px;border:1px dashed var(--line);border-radius:12px;background:transparent;
color:var(--i3);font:500 13px var(--sans);margin-top:6px;cursor:pointer}

/* ---- KPI ---- */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.kpi b{display:block;font:600 17px var(--serif)}
.kpi span{font:400 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--i4)}
.kpi.g b{color:var(--good)}.kpi.r b{color:var(--bad)}

/* ---- OTSING ---- */
#q{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--paper);
font:15px var(--sans);color:var(--i1);outline:none;margin-bottom:12px}
#q:focus{border-color:var(--acc)}

/* ---- LUKUS PROJEKT ---- */
.locked{text-align:center;padding:34px 20px;border:1px dashed var(--line);border-radius:14px;background:var(--warm)}
.locked .lk{font-size:30px;margin-bottom:10px}
.locked p{font-size:13px;color:var(--i3);margin:0 0 16px;line-height:1.5}

/* ---- TAB BAR ---- */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(3,1fr);
background:rgba(255,253,249,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);
padding-bottom:var(--safe-b)}
nav.tabs button{background:none;border:0;padding:9px 0 8px;font:500 10px var(--sans);color:var(--i4);cursor:pointer}
nav.tabs button i{display:block;font-style:normal;font-size:19px;margin-bottom:2px;opacity:.65}
nav.tabs button.on{color:var(--acc)} nav.tabs button.on i{opacity:1}

/* ---- DANZO logo lukustusekraanil ---- */
#lock .mark{border:0;background:none;padding:0;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.28)}
#lock .mark img{width:96px;height:96px;display:block;border-radius:24px}

/* ---- avatavad põhifailid ---- */
a.main-l{text-decoration:none;color:inherit;display:block}
a.main-l.open{position:relative;transition:transform .1s}
a.main-l.open:active{transform:scale(.985)}
.main-l .ml{display:flex;align-items:center;gap:8px}
.tag-open{margin-left:auto;background:var(--acc);color:#fff;font:700 9.5px var(--mono);
  letter-spacing:.09em;border-radius:5px;padding:3px 7px;white-space:nowrap}
.tag-mac{margin-left:auto;background:var(--soft);color:var(--i4);font:600 9.5px var(--mono);
  letter-spacing:.05em;border-radius:5px;padding:3px 7px;white-space:nowrap}
.main-l.dim{opacity:.72}
.sechint{color:var(--i4);font:400 10.5px var(--mono);letter-spacing:.04em;margin-left:8px;text-transform:none}
