:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#222321;background:#fff;font-size:14px;--muted:#737373;--line:#d9d9d6;--pale:#f5f5f5;--sidebar:#f1f1f1;--accent:#282c25;--accent-soft:#e3e7dc;--danger:#b2452f;--ok:#4f7a3a;--warn:#b8860b;--rose:#f5e3e0;--sage:#e3ecdb;--lavender:#e8e4f3;--sand:#f3ecd9;--sky:#dfebf4;--orange:#f8e3cf}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select,textarea{font:inherit}
button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px}button:hover{background:#f2f3ef}button:disabled{opacity:.5;cursor:default}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #52594b;outline-offset:2px}
input,select,textarea{border:1px solid #dedfd9;border-radius:7px;padding:9px 10px;color:inherit;background:#fff;max-width:100%}textarea{width:100%;resize:vertical;min-height:80px;line-height:1.5}input[type=checkbox]{accent-color:#4f5b44;width:17px;height:17px;margin:0}
h1,h2,h3,p{margin-top:0}h1{font-weight:550;letter-spacing:-.8px;font-size:28px;line-height:1.2;margin-bottom:6px}h2{font-size:16px;font-weight:600;letter-spacing:-.2px}h3{font-size:14px;font-weight:600}
code{background:var(--pale);padding:1px 5px;border-radius:4px;font-size:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--muted)}.small-text{font-size:12px}

/* shell */
.app-shell{display:flex;min-height:100vh}
.sidebar{background:var(--sidebar);width:230px;min-width:230px;padding:26px 16px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--line);transition:margin .2s}
.sidebar.closed{margin-left:-230px}
.brand{display:flex;align-items:center;gap:12px;font-size:14px;line-height:1.3;font-weight:600;margin:0 8px 34px}.brand small{font-weight:400;color:#6d706a;font-size:11px}
.brand-mark{font-family:Georgia,serif;font-size:30px;line-height:1;background:#e4e6df;border-radius:9px;padding:6px 11px 8px}
.nav-caption{font-size:9px;font-weight:600;letter-spacing:1.2px;color:#969891;padding-left:12px;margin-bottom:12px}
nav{display:flex;flex-direction:column;gap:4px}nav a{padding:11px 12px;border-radius:7px;display:flex;gap:12px;align-items:center;color:#5d6058;font-size:13px;position:relative}nav a span{width:18px;text-align:center;font-size:17px;line-height:1}nav a:hover{text-decoration:none;background:#eaece5}nav a.active{background:var(--accent-soft);color:#252c20;font-weight:600}
.nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-style:normal;font-size:10px;font-weight:600;border-radius:9px;padding:1px 7px}
.sidebar-bottom{margin-top:auto;padding:30px 10px 0;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.text-button{border:0;background:transparent;padding:0;color:#5f6558;font-size:12px}.text-button:hover{background:transparent;text-decoration:underline}
.workspace{flex:1;min-width:0}
.topbar{height:60px;padding:0 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;background:#fff;z-index:5}
.topbar-left{display:flex;align-items:center;gap:14px;color:#888c82;font-size:12px}.topbar-right{display:flex;align-items:center;gap:16px}.me-name{font-size:12px;color:#5d6058}
.icon-button{padding:5px 8px;border:0;background:transparent;font-size:18px}
.sync-status{border:0;background:transparent;display:flex;align-items:center;gap:8px;color:#898d84;font-size:11px;padding:6px 0}.status-dot{width:7px;height:7px;background:#99aa89;border-radius:50%}.sync-status.offline .status-dot{background:#d4b965}.sync-status.error .status-dot{background:#cc8b78}.sync-status.busy .status-dot{animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.3}}
.nav-backdrop{display:none}
.page{max-width:1400px;margin:0 auto;padding:30px 30px 60px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.7px;color:#93958e;margin-bottom:10px}.subtitle{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.head-actions,.row-actions,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#414a37;color:#fff}
.danger{color:var(--danger);border-color:#e3c4bc}.danger:hover{background:#fbf0ed}
.small{font-size:11px;padding:5px 8px}
.back-link{display:inline-block;font-size:12px;color:#6b6f66;margin-bottom:14px}

/* date strip */
.date-controls{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0 0 8px;flex-wrap:wrap}.date-controls strong{font-size:14px;font-weight:550}.date-controls input{padding:5px 8px;font-size:12px}
.date-strip{display:flex;gap:5px;overflow-x:auto;padding:4px 0 20px;scrollbar-width:thin}
.date-chip{min-width:52px;flex:1;padding:9px 4px;border-color:transparent;border-radius:8px;background:#f8f9f6;text-align:center;position:relative}.date-chip .weekday{display:block;color:#9a9d93;font-size:9px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}.date-chip .number{display:block;font-size:16px;font-weight:500}.date-chip.selected{background:#e7ecde;border-color:#dce4d0}.date-chip.weekend .number{color:#9a9d93}.date-chip.today .number:after{content:"";display:block;width:4px;height:4px;background:#56614b;border-radius:50%;margin:3px auto -7px}.date-chip .load{position:absolute;top:5px;right:6px;font-size:9px;color:#8b9381}

/* panels */
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.dashboard-col{display:flex;flex-direction:column;gap:18px}
.panel{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px 11px;flex-wrap:wrap}.panel-head h2{margin:0;font-size:14px;display:flex;gap:8px;align-items:center}.panel-head h2 .count{color:#8b9381;font-weight:400;font-size:12px}
.panel-body{padding:0 10px 8px}.panel-footer{border-top:1px solid #f0f1ed;padding:9px 16px;display:flex;justify-content:space-between;color:#93978c;font-size:11px}
.segmented{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.segmented button{border:0;border-radius:0;padding:4px 8px;font-size:10px;color:#969b8c}.segmented button.selected{background:#edf1e5;color:#5a654d}
.empty{padding:28px 14px 26px;text-align:center;color:#9b9e95;font-size:12px;line-height:1.7}.empty p{margin-bottom:10px}

/* task rows */
.task-row{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-bottom:1px solid #f0f1ed;border-radius:6px}.task-row:last-child{border-bottom:0}.task-row:hover{background:#fafbf8}
.task-row.c-rose{background:var(--rose)}.task-row.c-sage{background:var(--sage)}.task-row.c-lavender{background:var(--lavender)}.task-row.c-sand{background:var(--sand)}.task-row.c-sky{background:var(--sky)}.task-row.c-orange{background:var(--orange)}
.task-row .check{margin-top:2px;flex:none}.task-row .body{flex:1;min-width:0}.task-title{font-size:13px;line-height:1.45;word-break:break-word}.task-title button{border:0;background:none;padding:0;text-align:left;font-size:13px;line-height:1.45;color:inherit}.task-title button:hover{text-decoration:underline;background:none}
.task-row.done .task-title{color:#9a9d93;text-decoration:line-through}
.task-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:11px;color:#8b8e86}
.tag{display:inline-block;padding:1px 7px;border-radius:9px;background:#f0f1ed;font-size:10px;color:#5f6558;white-space:nowrap}.tag.prio-A{background:#f5d9d2;color:#8c3a27}.tag.prio-B{background:#f6ebcf;color:#7f5d0f}.tag.prio-C{background:#e3ecdb;color:#4a6b35}.tag.overdue{background:#f5d9d2;color:#8c3a27}.tag.review{background:#e8e4f3;color:#5a4a8c}.tag.returned{background:#f6ebcf;color:#7f5d0f}.tag.accepted{background:#e3ecdb;color:#4a6b35}.tag.doing{background:#dfebf4;color:#2f5673}.tag.rec{background:#f0f1ed}.tag.person{background:#fff;border:1px solid var(--line)}
.task-row .actions{display:flex;gap:4px;flex:none;opacity:0;transition:opacity .15s}.task-row:hover .actions,.task-row:focus-within .actions{opacity:1}.task-row .actions button{padding:3px 7px;font-size:11px}
.quick-add{display:flex;gap:6px;padding:8px}.quick-add input{flex:1;padding:7px 10px;font-size:13px}

/* meetings */
.meeting-row{display:flex;gap:12px;padding:10px 8px;border-bottom:1px solid #f0f1ed;align-items:flex-start;border-radius:6px}.meeting-row:last-child{border-bottom:0}.meeting-row:hover{background:#fafbf8}.meeting-row .time{min-width:52px;font-size:13px;font-weight:550;color:#4a4f45}.meeting-row .time small{display:block;font-weight:400;color:#9a9d93;font-size:10px}.meeting-row .body{flex:1;min-width:0}.meeting-row .title{font-size:13px}.meeting-row .title a:hover{text-decoration:underline}.meeting-row.cancelled .title{text-decoration:line-through;color:#9a9d93}.meeting-row.done .time{color:#4f7a3a}
.day-group{margin-bottom:22px}.day-group h3{font-size:12px;color:#6b6f66;margin:0 0 6px 8px;font-weight:600}

/* week board */
.week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:18px}
.week-col{border:1px solid var(--line);border-radius:10px;background:#fff;min-height:260px;display:flex;flex-direction:column}.week-col.today{border-color:#9db08b;box-shadow:0 0 0 1px #9db08b inset}.week-col.weekend{background:#fbfbf9}
.week-col-head{padding:10px 10px 6px;border-bottom:1px solid #f0f1ed;display:flex;justify-content:space-between;align-items:baseline}.week-col-head strong{font-size:13px}.week-col-head span{font-size:10px;color:#9a9d93;text-transform:uppercase}
.week-col-body{padding:4px;flex:1}.week-col-body .task-row{padding:6px 6px;gap:7px;position:relative}.week-col-body .task-title,.week-col-body .task-title button{font-size:12px}.week-col-body .task-meta{font-size:10px}
.week-col-body .task-row .actions{position:absolute;right:4px;top:3px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.week-item-meeting{display:flex;gap:6px;padding:5px 6px;font-size:11px;color:#4a4f45;border-left:3px solid #9db08b;margin:3px 2px;background:#f6f8f2;border-radius:4px}.week-item-meeting.cancelled{opacity:.5;text-decoration:line-through}.week-item-meeting strong{font-weight:600;white-space:nowrap}
.week-col-foot{padding:4px}.week-col-foot button{width:100%;font-size:11px;padding:5px;border-style:dashed;color:#8b9381}
.week-stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}.stat{border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-width:130px}.stat b{display:block;font-size:22px;font-weight:550;letter-spacing:-.5px}.stat span{font-size:11px;color:#8b8e86}.stat.bad b{color:var(--danger)}.stat.good b{color:var(--ok)}.stat.warn b{color:var(--warn)}

/* cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.person-card{border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:#fff;display:flex;flex-direction:column;gap:10px}.person-card h2{margin:0;font-size:15px}.person-card p{margin:0;font-size:12px;color:var(--muted)}
.person-top{display:flex;gap:12px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#e4e6df;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#4a4f45;flex:none}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.kpi{background:#f8f9f6;border-radius:7px;padding:7px 8px;text-align:center}.kpi b{display:block;font-size:16px;font-weight:550}.kpi span{font-size:9px;color:#8b8e86;text-transform:uppercase;letter-spacing:.3px}.kpi.bad b{color:var(--danger)}.kpi.warn b{color:var(--warn)}.kpi.good b{color:var(--ok)}
.person-card.inactive{opacity:.55}
.link-box{display:flex;gap:6px;align-items:center;margin-top:4px}.link-box input{flex:1;font-size:11px;padding:6px 8px;color:#5d6058}

/* list sections */
.section{margin-bottom:26px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.section-toolbar h2{margin:0}
.list-panel{border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px 8px}
.rule-row{display:flex;gap:12px;align-items:flex-start;padding:10px 8px;border-bottom:1px solid #f0f1ed}.rule-row:last-child{border-bottom:0}.rule-row .body{flex:1}.rule-row .title{font-size:13px}.rule-row .meta{font-size:11px;color:#8b8e86;margin-top:3px}.rule-row.inactive .title{color:#9a9d93}

/* meeting page */
.meeting-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}
.field-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px;background:#fff}.field-card h3{margin-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#8b8e86}.field-card textarea{min-height:70px;border-color:transparent;padding:4px;background:#fafbf8}.field-card textarea:focus{border-color:#dedfd9;background:#fff}.field-card .text{white-space:pre-wrap;font-size:13px;line-height:1.55}
.protocol-item{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-bottom:1px solid #f0f1ed}.protocol-item:last-child{border-bottom:0}.protocol-item input[type=text]{flex:1;border-color:transparent;padding:4px 6px;background:transparent}.protocol-item input[type=text]:focus{border-color:#dedfd9;background:#fff}.protocol-item select,.protocol-item input[type=date]{font-size:11px;padding:4px 6px}.protocol-item.done input[type=text]{text-decoration:line-through;color:#9a9d93}
.detail-list{font-size:13px;line-height:1.7}.detail-list dt{color:#8b8e86;font-size:11px;text-transform:uppercase;letter-spacing:.4px;margin-top:8px}.detail-list dd{margin:0}

/* editor dialog */
.editor{border:0;border-radius:12px;padding:0;width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 40px);box-shadow:0 20px 60px rgba(0,0,0,.18)}.editor::backdrop{background:rgba(30,32,28,.35)}
#editor-content{padding:24px 26px 20px}.editor h2{margin-bottom:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.form-grid .full{grid-column:1/-1}
label.field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#6b6f66;font-weight:500}label.field input,label.field select,label.field textarea{font-size:13px;color:#222321}
.checks{display:flex;gap:8px;flex-wrap:wrap}.checks label{display:flex;gap:5px;align-items:center;font-size:12px;border:1px solid var(--line);border-radius:7px;padding:5px 9px;cursor:pointer}.checks label:has(input:checked){background:#edf1e5;border-color:#c9d6b8}
.color-picker{display:flex;gap:6px}.color-picker label{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;position:relative}.color-picker input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.color-picker label:has(input:checked){border-color:#4a4f45}
.color-none{background:#fff;border:1px solid var(--line)!important}.color-rose{background:var(--rose)}.color-sage{background:var(--sage)}.color-lavender{background:var(--lavender)}.color-sand{background:var(--sand)}.color-sky{background:var(--sky)}.color-orange{background:var(--orange)}
.editor-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;flex-wrap:wrap}.editor-actions .right{display:flex;gap:8px;margin-left:auto}
.form-error{color:var(--danger);font-size:12px;margin-top:10px;min-height:1em}
.history{font-size:12px;color:#6b6f66;line-height:1.6;margin-top:12px;border-top:1px solid #f0f1ed;padding-top:10px}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#282c25;color:#fff;padding:10px 16px;border-radius:9px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:50;max-width:90vw}.toast.error{background:#8c3a27}

/* review page */
.review-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:12px 10px;border-bottom:1px solid #f0f1ed;align-items:center}.review-row:last-child{border-bottom:0}.review-row .result{font-size:12px;color:#4a4f45;margin-top:4px;white-space:pre-wrap}
.review-actions{display:flex;gap:6px}

/* gate */
.gate-body{background:#f4f4f2;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}.gate{background:#fff;border:1px solid var(--line);border-radius:14px;padding:36px 40px;max-width:480px}.gate-denied{color:var(--danger);font-size:13px;margin-top:14px}

/* responsive */
@media (max-width:1100px){.week-board{grid-template-columns:repeat(4,minmax(0,1fr))}.meeting-grid{grid-template-columns:1fr}}
@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;left:0;margin-left:0}.sidebar.closed{margin-left:-230px}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:15}.nav-backdrop[hidden]{display:none}.page{padding:18px 16px 50px}.topbar{padding:0 16px}.form-grid{grid-template-columns:1fr}.week-board{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.week-board{grid-template-columns:1fr}.task-row .actions{opacity:1}}
