/* Andreas Gundelach / CODEX */
:root{color-scheme:dark;--bg:#101923;--side:#121f2d;--panel:#192a3b;--input:#111e2c;--text:#e9f1fa;--muted:#a1b2c7;--line:#34495f;--accent:#56b7e8;--danger:#f49595;--radius:7px;font:14px/1.45 system-ui;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button,.button{border:1px solid var(--line);background:var(--button-bg);color:var(--text);border-radius:5px;padding:7px 11px;text-decoration:none}button:hover,.button:hover{background:var(--button-hover)}.primary{background:#167caf;border-color:#59c9ff;color:#fff}.danger{color:var(--danger)}a{color:var(--link)}input,textarea,select,[contenteditable]{width:100%;border:1px solid var(--line);border-radius:5px;background:var(--input);color:var(--text);padding:8px;min-height:36px;outline:none}input:focus,textarea:focus,select:focus,[contenteditable]:focus{border-color:#72c6f0;box-shadow:0 0 0 2px #72c6f020}input[type=checkbox]{width:auto;min-height:0;accent-color:#56b7e8}input[type=color]{padding:2px;width:52px;height:36px}textarea{min-height:92px;resize:vertical}select[multiple]{min-height:110px}label{display:flex;flex-direction:column;gap:5px;align-items:flex-start;color:var(--label);font-size:13px}label>span{font-weight:600}small,.muted{color:var(--muted)}h1{font-size:23px;line-height:1.2;margin:0}h2{font-size:17px;margin:0 0 14px}h3{font-size:14px;margin:18px 0 8px}p{margin:8px 0 14px}hr{border:0;border-top:1px solid var(--line);margin:18px 0}[hidden]{display:none!important}.boot-loader{height:100dvh;display:grid;place-items:center;color:#1688b8}.aikata-a{width:64px;height:64px;animation:turn 1.2s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.auth-wrap{max-width:700px;margin:6vh auto;padding:22px}.auth-wrap .panel{padding:24px}.auth-brand{display:flex;align-items:center;gap:12px;font-size:24px;margin-bottom:22px}.brand-a{width:34px;height:34px;fill:#69ccfa}.auth-form{display:grid;gap:16px}.auth-form .actions{justify-content:flex-end}.shell{display:grid;grid-template-columns:215px minmax(380px,1fr) 350px;grid-template-rows:60px minmax(0,1fr);height:100dvh;overflow:hidden}.topbar{grid-column:1/-1;display:flex;align-items:center;gap:20px;background:var(--header-bg);border-bottom:1px solid var(--line);padding:9px 18px}.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:700;letter-spacing:1px;min-width:180px}.brand svg{width:29px;height:29px}.project-picker{width:min(600px,50vw)}.account-chip{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.leftbar{background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px;min-height:0;overflow:auto}.leftbar nav{display:grid;gap:4px}.leftbar nav button{text-align:left;background:transparent;border-color:transparent;padding:9px 10px;font-size:13px}.leftbar nav button.active{background:var(--active-bg);border-color:var(--active-border);color:var(--active-text)}.nav-group{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);padding:16px 10px 5px}.leftbar footer{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:auto;padding:18px 7px 0;font-size:11px}.leftbar footer button{padding:0;border:0;background:none;font-size:11px}.version{font-size:10px;color:var(--muted);padding:9px 7px}.workspace{overflow:auto;padding:22px 24px 90px;min-width:0}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.section-heading .actions{margin-left:auto}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.full{grid-column:1/-1}.field-help{font-size:11px;color:var(--muted)}.char-meter{height:3px;width:100%;background:var(--meter-bg);border-radius:2px;overflow:hidden}.char-meter i{display:block;height:100%;background:#5bbb8c;width:0}.char-count{font-size:10px;color:var(--muted);width:100%;text-align:right}.field-error{border-color:#d66b6b!important}.form-check{display:flex;align-items:flex-start;gap:8px;flex-direction:row;padding:9px 0}.form-check input{margin-top:3px}.rich-toolbar{display:flex;gap:4px;flex-wrap:wrap;width:100%;border:1px solid var(--line);border-bottom:0;padding:4px;background:var(--raised)}.rich-toolbar button{padding:3px 7px;font-size:11px}.rich-editor{min-height:180px;max-height:520px;overflow:auto;border-radius:0 0 5px 5px;width:100%;color:var(--text);overflow-wrap:anywhere}.rich-editor img{max-width:100%;height:auto}.media-control{display:flex;gap:7px;width:100%;align-items:flex-start}.media-control select{flex:1;min-width:0}.media-thumb{max-width:100%;max-height:140px;object-fit:contain;display:block;margin-top:8px;background:#fff;border-radius:3px}.rightbar{border-left:1px solid var(--line);background:var(--side);display:flex;flex-direction:column;min-height:0;overflow:hidden}.help-panel{padding:18px;font-size:12px;color:var(--muted);max-height:30%;overflow:auto;border-bottom:1px solid var(--line)}.help-panel h2{font-size:13px;color:var(--text);margin-bottom:8px}.preview-title{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:11px;color:var(--muted)}.rightbar iframe{width:100%;flex:1;min-height:250px;border:0;background:#eee}.savebar{position:fixed;bottom:0;right:350px;left:215px;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:12px 22px;background:var(--footer-bg);border-top:1px solid var(--line);backdrop-filter:blur(9px);z-index:500}.save-status{font-size:12px;color:var(--muted)}.save-status.error{color:var(--danger)}.savebar button{min-width:120px}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th,.data-table td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.data-table tr[data-id]{cursor:pointer}.data-table tr[data-id]:hover{background:var(--hover-bg)}.data-table .actions button{padding:3px 7px;font-size:11px}.table-wrap{overflow:auto}.badge{display:inline-flex;border:1px solid #56718c;background:var(--badge-bg);padding:2px 7px;border-radius:30px;font-size:10px;white-space:nowrap}.badge.warn{color:var(--warning);border-color:#8d744e}.badge.green{color:var(--success);border-color:#4c8c68}.empty{padding:45px 18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:7px}.notice{padding:12px 15px;background:var(--info-bg);border-left:3px solid #69b9e3;font-size:12px;margin:12px 0}.notice.error{border-color:#ef8f8f;color:var(--danger);background:var(--error-bg)}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat strong{display:block;font-size:28px}.stat span{font-size:11px;color:var(--muted)}.color-row{display:grid;grid-template-columns:minmax(140px,1fr) 52px 110px;gap:9px;align-items:center;margin:9px 0}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.media-tile{border:1px solid var(--line);border-radius:5px;padding:8px;font-size:10px;overflow-wrap:anywhere}.media-tile img{display:block;object-fit:contain;height:100px;width:100%;background:#fff;margin-bottom:6px}.map-editor{height:370px;position:relative;min-width:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.map-editor .aikata-map{height:100%;width:100%}.map-tools{display:flex;gap:8px;margin:8px 0;align-items:center;flex-wrap:wrap}.map-tools .active{background:#99751a}.planner-frame{width:100%;height:calc(100dvh - 165px);border:1px solid var(--line);border-radius:6px;background:#152333}.timetable-wide .shell{grid-template-columns:180px minmax(500px,1fr) 0}.timetable-wide .rightbar{display:none}.timetable-wide .savebar{right:0;left:180px}.sortable-item{cursor:grab;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);padding:12px;margin:7px 0;border-radius:5px}.sortable-item .grow{flex:1}.sortable-item.drag-over{border-color:#86d7ff}.sort-handle{color:var(--muted);font-size:18px}.section-tabs{display:flex;gap:6px;margin:15px 0}.section-tabs button.active{background:#346080}.import-tree{max-height:440px;overflow:auto}.import-tree label{display:flex;flex-direction:row;gap:8px;align-items:flex-start;font-size:12px;padding:6px}.import-progress{height:5px;background:var(--meter-bg)}.import-progress i{display:block;height:100%;background:#58bde4;transition:width .2s}.conflict-row{display:grid;grid-template-columns:minmax(100px,1fr) 150px;align-items:start;gap:12px;padding:9px;border-bottom:1px solid var(--line)}.drop-zone{padding:30px;border:2px dashed #4c708e;text-align:center;border-radius:7px}.drop-zone.active{border-color:#8cdcff;background:#25465f}.drop-zone[data-update]{position:relative;z-index:600}.update-history{font-size:12px}.toolbar-line{display:flex;gap:10px;margin-bottom:12px;align-items:center}.toolbar-line input{max-width:320px}.modal-backdrop{position:fixed;inset:0;background:#0009;z-index:1000;display:grid;place-items:center}.modal{width:min(800px,94vw);max-height:90dvh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px}.modal header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal .media-tile{cursor:pointer}.hidden-input{display:none}.mobile-toggle{display:none}.mail-test{display:flex;gap:8px;margin-top:14px}.mail-test input{flex:1}.split-fields{display:flex;gap:8px;align-items:center}.split-fields>*{flex:1}body.light{--bg:#e6edf4;--side:#e0e9f2;--panel:#f5f8fc;--input:#fff;--text:#122538;--muted:#51677e;--line:#bacbdc;color-scheme:light}body.light .topbar,body.light .savebar,body.light .rightbar{background:#d3e2f0;color:#123}body.light .leftbar button{color:#234}body.light label{color:#234}body.light input,body.light select,body.light textarea,body.light [contenteditable]{color:#123}body.light .rich-editor{color:#123}
@media(max-width:1250px){.shell{grid-template-columns:185px minmax(380px,1fr) 285px}.savebar{left:185px;right:285px}.workspace{padding:18px 18px 90px}.brand{min-width:150px}.account-chip{max-width:170px;overflow:hidden;text-overflow:ellipsis}.rightbar .help-panel{padding:12px}}@media(max-width:980px){.shell{grid-template-columns:180px minmax(0,1fr) 0}.rightbar{display:none}.savebar{left:180px;right:0}.project-picker{width:min(450px,55vw)}.account-chip{display:none}}@media(max-width:650px){.shell,.timetable-wide .shell{grid-template-columns:0 minmax(0,1fr) 0;grid-template-rows:58px minmax(0,1fr)}.leftbar{display:none}.shell.nav-open .leftbar{display:flex;position:fixed;left:0;top:58px;bottom:0;width:220px;z-index:600;box-shadow:10px 0 30px #0009}.mobile-toggle{display:block;padding:4px 7px}.brand{min-width:0;font-size:15px;gap:4px}.brand svg{width:24px}.topbar{gap:10px;padding:8px}.project-picker{width:auto;flex:1}.savebar,.timetable-wide .savebar{left:0;right:0;padding:10px 14px}.form-grid{grid-template-columns:1fr}.workspace{padding:17px 12px 85px}.auth-wrap{margin:20px auto;padding:12px}.auth-wrap .panel{padding:18px}.section-heading{flex-wrap:wrap}.color-row{grid-template-columns:minmax(100px,1fr) 44px 100px}.planner-frame{height:calc(100dvh - 190px)}}@media(prefers-reduced-motion:reduce){.aikata-a{animation:none}}

.field-wrapper{display:flex;flex-direction:column;gap:5px;align-items:flex-start;color:var(--label);font-size:13px}.field-wrapper>span{font-weight:600}.field-wrapper>.rich-editor,.field-wrapper>textarea,.field-wrapper>.char-meter{width:100%}

.leftbar{overflow:hidden}.leftbar nav{overflow-y:auto;min-height:0;flex:1;display:block}.leftbar nav button{display:block;width:100%;margin-bottom:4px}.leftbar footer{flex-shrink:0;flex-wrap:nowrap;white-space:nowrap;padding-top:12px}.leftbar .version{flex:none}

:root{--button-bg:#263e54;--button-hover:#35546e;--link:#8dd9ff;--label:#c9d6e6;--header-bg:#142334;--active-bg:#24445e;--active-border:#40627f;--active-text:#aee6ff;--raised:#22364b;--footer-bg:#142537f5;--meter-bg:#334357;--hover-bg:#26425b;--badge-bg:#22394e;--warning:#ffd79e;--success:#9addb5;--info-bg:#243e54;--error-bg:#432d33}
body.light{--bg:#eef2f7;--side:#e5ecf3;--panel:#fff;--input:#fff;--text:#172b3f;--muted:#435c73;--line:#b5c4d4;--accent:#176d99;--danger:#a12335;--button-bg:#e4edf5;--button-hover:#d3e3ef;--link:#165c91;--label:#233d55;--header-bg:#dde8f1;--active-bg:#c8e0ef;--active-border:#6a9ebd;--active-text:#113e5c;--raised:#e5eef6;--footer-bg:#e2ebf3f5;--meter-bg:#c9d4e0;--hover-bg:#e4eff7;--badge-bg:#e8f0f6;--warning:#72500a;--success:#17633c;--info-bg:#e1eef8;--error-bg:#fce9ed}
body.light .field-wrapper,body.light .help-panel h2{color:var(--text)}body.light .notice.error{color:var(--danger)}body.light .leftbar nav button.active{color:var(--active-text)}body.light .auth-status{background:var(--footer-bg);color:var(--text)}
.nav-divider{margin-top:12px;border-top:1px solid var(--line)}.auth-status{position:fixed;inset:auto 0 0;padding:13px 22px;background:var(--footer-bg);border-top:1px solid var(--line);color:var(--text);z-index:500}.auth-status.error{color:var(--danger)}.save-status{white-space:pre-wrap;overflow-wrap:anywhere}.user-indent{display:flex;align-items:flex-start;gap:5px;min-width:200px}.user-expand{border:0;background:transparent;padding:0;width:18px;min-width:18px;font-size:16px;line-height:20px;color:var(--text)}.user-spacer{width:18px;min-width:18px}.user-indent strong{font-weight:600}.user-tree td:first-child{padding-left:0}.user-tree tr[hidden]{display:none}
.attendance-field{border:0;padding:0;margin:0;min-width:165px}.attendance-field legend{font-size:12px;font-weight:600;color:var(--label);margin-bottom:8px}.traffic-light{display:flex;gap:9px;align-items:center;min-height:34px}.traffic-dot{width:27px;height:27px;min-width:27px;border-radius:50%;padding:0;border:2px solid transparent;opacity:.5;box-shadow:inset 0 0 0 1px #0002}.traffic-dot.green{background:#289d57}.traffic-dot.yellow{background:#e28b21}.traffic-dot.red{background:#da3e43}.traffic-dot[aria-pressed=true]{opacity:1;border-color:var(--text);outline:2px solid var(--panel);outline-offset:-4px}.traffic-dot:hover{opacity:1}.traffic-clear{background:none!important;border:0;padding:0 5px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.live-table textarea{min-width:220px;min-height:64px;max-height:180px}.live-table .live-name{min-width:145px;max-width:260px}.live-name small{display:block;margin-top:5px;color:var(--muted)}.live-table .field-wrapper>span,.live-table legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.live-table .attendance-field{padding-top:4px}.live-table .row-dirty{background:var(--info-bg)}.live-table td:last-child{width:1%;white-space:nowrap}.live-table .field-wrapper{min-width:220px}.live-table .char-count{font-size:9px}.list-type-filter{min-width:210px}.list-type-filter>span{font-size:10px}.toolbar-line{align-items:flex-end;flex-wrap:wrap}
