*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f6f4ee;color:#2b2b24}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#4a5d23;color:#fff}
header select{font-size:15px;padding:4px;border-radius:6px}
nav{display:flex;background:#fff;border-bottom:1px solid #ddd;position:sticky;top:0}nav button{flex:1;padding:12px 4px;border:0;background:none;font-size:15px}
nav button.on{border-bottom:3px solid #4a5d23;font-weight:600}main{padding:12px;max-width:760px;margin:auto}
.card{background:#fff;border-radius:10px;padding:12px;margin-bottom:12px;box-shadow:0 1px 2px #0001}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal .h{text-align:center;font-size:12px;color:#777}
.d{min-height:58px;background:#fff;border-radius:6px;padding:3px;font-size:11px;cursor:pointer;border:1px solid #eee}
.d.e{background:none;border:0;cursor:default}.d .n{color:#888}.d .t{font-size:15px;font-weight:700;color:#4a5d23}.d .s{color:#6d4c41}
.d.today{outline:2px solid #4a5d23}.d.ap{border:1px dashed #c77}.d .st{font-size:10px;color:#557}
.row{display:flex;justify-content:space-between;align-items:center;margin:8px 0;gap:8px}
label{font-size:14px}input,select,textarea{font-size:17px;padding:8px;border:1px solid #ccc;border-radius:8px}
input[type=number]{width:90px;text-align:right}textarea{width:100%}
.btn{padding:12px 16px;border:0;border-radius:8px;background:#4a5d23;color:#fff;font-size:16px}.btn.del{background:#b23b3b}.btn.sec{background:#888}
.flag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:10px;background:#fde3e3;color:#a33;margin-left:4px}
.kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.kpi div{background:#fff;border-radius:8px;padding:8px;text-align:center}.kpi b{display:block;font-size:20px}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:5px;border-bottom:1px solid #eee;text-align:right}td:first-child,th:first-child{text-align:left}
.monthnav{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.monthnav button{font-size:20px;border:0;background:#fff;border-radius:6px;padding:4px 14px}
.muted{color:#888;font-size:13px}.ok{color:#2e7d32}

.kpi{grid-template-columns:repeat(2,1fr)}.flag{white-space:normal}td .flag{display:block;margin:2px 0 0}nav button{font-size:14px}details summary{cursor:pointer}
.card{overflow-x:auto}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}table.nw td,table.nw th{white-space:nowrap}
nav.sub{top:45px;background:#eef1e6;z-index:1}nav.sub button{font-size:13px;padding:8px 4px}nav{z-index:2}
@media(max-width:480px){header b{font-size:15px}nav button{font-size:13px;padding:10px 2px}}
.hr{display:flex;gap:6px;align-items:center}.lang{display:flex;border:1px solid #fff8;border-radius:6px;overflow:hidden}.lang button{border:0;background:none;color:#fff;padding:5px 7px;font-size:12px}.lang button.on{background:#fff;color:#4a5d23;font-weight:700}
.mini{border:1px solid #ccc;background:#fff;border-radius:6px;padding:4px 8px}table.crew input[type=number]{width:80px}table.crew input[type=checkbox],td input[type=checkbox]{width:20px;height:20px}
.auth{max-width:420px;margin:24px auto}.auth input{flex:1;min-width:0}.err{color:#c62828;font-size:14px;min-height:1em}dialog.auth{border:0;width:min(420px,92vw)}dialog::backdrop{background:#0006}.who{display:flex;gap:4px;align-items:center;font-size:13px}.who button{border:1px solid #fff8;background:none;color:#fff;border-radius:6px;padding:4px 7px;font-size:12px}

/* ---- sidebar layout ---- */
body{display:flex;min-height:100vh}.mainwrap{flex:1;min-width:0}
#side{width:250px;flex:none;background:#2f3c16;color:#eef1e6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .15s}
#side i{font-style:normal;width:26px;text-align:center;flex:none;font-size:17px}
.sb-top{display:flex;align-items:center;justify-content:space-between;padding:14px 12px}.brand{display:flex;gap:6px;align-items:center;font-size:17px}
.sb-ic{border:0;background:none;color:#eef1e6;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px}.sb-ic:hover{background:#fff2}#sb_x{display:none}
.sb-season{padding:0 12px 10px}.sb-season select{width:100%;font-size:14px}
#sbnav{flex:1;padding:4px 0}
#side a,#side .gh,#side .sbb,#side .who{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;color:#eef1e6;text-decoration:none;border:0;background:none;font-size:15px;text-align:left;cursor:pointer;border-left:3px solid transparent;white-space:nowrap}
#side .who{cursor:default;font-size:13px;opacity:.9}
#side a:hover,#side .gh:hover,#side .sbb:hover{background:#fff1}
#side a.on{background:#4a5d23;border-left-color:#c5d86d;font-weight:600}
.gh .car{margin-left:auto;transition:transform .15s}.grp.closed .car{transform:rotate(-90deg)}.grp.closed .gi{display:none}
.gi a{padding-left:30px!important;font-size:14px!important}
.sb-bot{border-top:1px solid #fff2;padding:6px 0}.sb-bot .lang{margin:6px 14px;display:inline-flex}
.mainwrap header{position:sticky;top:0;z-index:5;justify-content:flex-start;gap:10px}#ham{display:none;border:0;background:none;color:#fff;font-size:22px;padding:0 6px;cursor:pointer}
#ov{display:none}body.noauth #side,body.noauth #ham{display:none}
html.sbc #side{width:58px}html.sbc #side .lbl,html.sbc .sb-season{display:none}html.sbc .sb-top{flex-direction:column;gap:6px;padding:12px 4px}html.sbc #sb_col{transform:rotate(180deg)}
html.sbc .gi a{padding-left:14px!important}html.sbc .grp.closed .gi{display:block}html.sbc .sb-bot .lang{flex-direction:column;margin:6px 8px}
@media(max-width:799px){
  #side,html.sbc #side{position:fixed;left:0;top:0;bottom:0;z-index:20;width:270px;transform:translateX(-100%);transition:transform .2s;box-shadow:2px 0 12px #0005}
  html.sbc #side .lbl{display:inline}html.sbc .sb-season{display:block}html.sbc .sb-top{flex-direction:row}
  body.drawer #side{transform:none}body.drawer #ov{display:block;position:fixed;inset:0;background:#0007;z-index:15}
  #ham{display:block}#sb_col{display:none}#sb_x{display:block}
}
#side .who .raw{display:inline}html.sbc #side .who .raw{display:none}@media(max-width:799px){html.sbc #side .who .raw{display:inline}}
.badge{background:#fff3cd;color:#7a5b00;border-radius:10px;padding:2px 8px;font-size:12px;margin-left:6px}.card.est{border-left:4px solid #e0b84a}.kpi div span.muted{display:block}
