:root { --accent:#2e7d32; }
[hidden] { display:none !important; }
body { display:block; font-family:Inter,Segoe UI,Arial,sans-serif; }
button,input,select { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.55; }
button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #619f68; outline-offset:3px; }
h1 { font-size:32px; letter-spacing:-1px; }
h2 { font-size:19px; }
.eyebrow { font-size:11px; letter-spacing:2px; color:#647267; margin-bottom:14px; }
.muted { color:#666; font-size:13px; line-height:1.6; margin:14px 0; }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; max-width:1100px; margin:auto; align-items:center; gap:70px; padding:40px; }
.auth-intro h1 { font-size:clamp(40px,5vw,68px); margin-bottom:28px; }
.auth-intro > p:last-child { line-height:1.7; color:#58635a; }
.auth-card { border:1px solid var(--border); border-radius:12px; padding:36px; background:white; }
label { display:flex; flex-direction:column; gap:8px; font-size:13px; margin:18px 0; }
input,select { padding:11px 12px; border:1px solid var(--border); border-radius:5px; width:100%; background:white; min-width:0; }
.btn { border-radius:5px; font-family:inherit; font-size:13px; padding:10px 16px; }
.auth-card .primary { width:100%; margin-top:8px; }
.link-button { background:none; border:0; text-decoration:underline; margin-top:24px; color:#27612e; }
#workspace { display:flex; min-height:100vh; }
.sidebar { width:220px; flex-shrink:0; padding:28px 0; }
.brand { display:flex; gap:12px; align-items:center; font-size:25px; font-weight:700; padding:0 22px 32px; }
.brand span { font-size:13px; line-height:1.4; }
.sidebar-title { overflow-wrap:anywhere; }
nav .nav-btn { display:block; width:100%; text-align:left; font-family:inherit; padding:14px 22px; }
.account { margin-top:auto; padding:22px; font-size:13px; overflow-wrap:anywhere; }
.account p { margin-bottom:12px; }
main { padding:40px; flex:1; min-width:0; max-width:1600px; }
.page-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:32px; }
.toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:20px 0; }
.toolbar label { margin:0 0 0 auto; flex-direction:row; align-items:center; }
.toolbar select { width:auto; max-width:230px; }
.calendar,.weekdays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.weekdays { padding:12px 0; text-align:center; color:#6b6b6b; font-size:11px; }
.calendar { border:1px solid var(--border); border-radius:8px; overflow:hidden; margin-bottom:28px; }
.day { background:white; min-height:92px; border:0; border-right:1px solid #eee; border-bottom:1px solid #eee; text-align:left; padding:12px; display:flex; flex-direction:column; gap:10px; }
.day.selected { background:#e3ede2; box-shadow:inset 0 0 0 2px #609567; }
.day.outside { background:#f1f1ee; }
.day-count { font-size:11px; color:#326139; }
.records { margin-top:18px; display:grid; gap:12px; }
.record { padding:20px; border:1px solid var(--border); border-radius:8px; background:white; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.record h3 { font-size:15px; overflow-wrap:anywhere; }
.record p { font-size:13px; color:#626262; line-height:1.7; overflow-wrap:anywhere; }
.record .actions { display:flex; gap:8px; flex-shrink:0; }
.empty { padding:35px; border:1px dashed var(--border); color:#666; line-height:1.7; }
#notice { position:fixed; top:16px; right:16px; z-index:100; background:#202d22; color:white; padding:16px 22px; border-radius:8px; max-width:min(480px,90vw); box-shadow:0 8px 30px #0002; }
dialog { border:1px solid var(--border); border-radius:12px; padding:28px; margin:auto; width:min(540px,94vw); max-height:90vh; overflow:auto; }
dialog::backdrop { background:#15241888; }
dialog header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#form-error { color:#b3261e; font-size:13px; }
@media(max-width:800px) { .auth-shell { grid-template-columns:1fr; gap:30px; padding:24px; }.auth-intro h1 { font-size:40px; }#workspace { flex-direction:column; }.sidebar { width:100%; padding:16px; }.brand { padding:0 0 16px; }nav { display:flex; flex-wrap:wrap; }nav .nav-btn { width:auto; padding:12px; }.account { padding:12px 0 0; display:flex; gap:16px; align-items:center; }.account p { margin:0; }main { padding:24px 16px; }.day { min-height:65px; padding:8px; }.day-count { font-size:9px; }.record { flex-direction:column; align-items:flex-start; }.toolbar label { margin:0; }.page-header { align-items:flex-start; }h1 { font-size:26px; } }
.permission-matrix{display:grid;gap:2px;max-height:52vh;overflow:auto;border:1px solid var(--border,#aaa0bd);border-radius:12px;padding:6px;}
#sidebar-nav [hidden]{display:none!important}
.permission-row{display:grid;grid-template-columns:minmax(145px,2fr) repeat(4,minmax(58px,1fr));align-items:center;gap:6px;padding:7px;border-bottom:1px solid var(--border,#aaa0bd);font-size:.86rem;}
.permission-row:last-child{border-bottom:0}.permission-header{position:sticky;top:0;background:var(--theme-surface,var(--night-surface,var(--background)));color:var(--text);z-index:1}.permission-header strong:not(:first-child),.permission-cell{text-align:center}.permission-cell input{width:18px;height:18px;cursor:pointer}.permission-team{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;margin-top:14px}.permission-team input{width:18px;height:18px;flex:none}
@media(max-width:560px){.permission-matrix{overflow-x:auto}.permission-row{min-width:490px}}
