:root{--alice-bg:#e8f3ff;--alice-border:#9bc9ff;--alice-text:#174d95;--alice-header-bg:#c7e2ff;--alice-header-text:#123e73;--bob-bg:#e8f7e8;--bob-border:#a9dca7;--bob-text:#166534;--bob-header-bg:#c8edc7;--bob-header-text:#14532d;--shared-bg:#fff4d8;--shared-border:#f4c96c;--shared-text:#9a5a00;--shared-header-bg:#ffe4a3;--shared-header-text:#8a4b00;--axis-line-color:#d02020;--axis-dot-color:#1040c0;--axis-dot-shape:0;--line:#d9dee8;--muted:#687385;--text:#1f2937;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f8fb;font-family:Inter,Microsoft YaHei,PingFang SC,Hiragino Sans GB,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{min-height:100vh;font-family:var(--app-font-family,Inter, "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", Arial, sans-serif);padding:24px 20px 28px}.toolbar{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1800px;margin:0 auto 16px;display:flex}.toolbar>div:first-child{flex:auto;min-width:0}.eyebrow{color:#345aa8;margin:0 0 6px;font-size:14px;font-weight:700}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-size:30px;line-height:1.2}.editable-title{cursor:text;border-radius:8px;padding:2px 4px;transition:background-color .15s,box-shadow .15s;display:inline-flex}.editable-title:hover{background:#eef5ff;box-shadow:inset 0 0 0 1px #c7d7f5}.schedule-title{flex-wrap:nowrap;align-items:baseline;gap:2px;min-width:0;max-width:100%;display:flex}.person-title{vertical-align:bottom;text-overflow:ellipsis;white-space:nowrap;color:#162033;cursor:text;min-width:0;max-width:5em;font:inherit;font-size:inherit;background:0 0;border:0;border-radius:8px;padding:2px 4px;font-weight:850;transition:background-color .15s,box-shadow .15s,color .15s;display:inline-block;overflow:hidden}.person-title:hover{color:#1f4f9a;background:#eef5ff;box-shadow:inset 0 0 0 1px #c7d7f5}.title-separator,.title-quote,.title-suffix{color:#475569;font-weight:800}.title-separator{margin:0 5px}.person-title-input{color:#1f2937;width:min(220px,28vw);min-height:38px;font:inherit;background:#fff;border:1px solid #98b7e7;border-radius:8px;padding:0 10px;font-size:30px;font-weight:850;line-height:1.2;box-shadow:0 0 0 3px #3b82f624}.title-input{color:#1f2937;width:min(360px,70vw);min-height:42px;font:inherit;background:#fff;border:1px solid #98b7e7;border-radius:8px;padding:0 12px;font-size:30px;font-weight:800;line-height:1.2;box-shadow:0 0 0 3px #3b82f624}.toolbar-actions{flex:none;grid-template-rows:repeat(2,minmax(38px,auto));grid-auto-columns:max-content;grid-auto-flow:column;place-content:end flex-end;gap:8px;min-width:0;display:grid}.tool-button,.icon-button{color:#344256;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cfd8e6;border-radius:8px;justify-content:center;align-items:center;min-height:38px;transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,transform .12s;display:inline-flex;box-shadow:0 1px 1px #0f172a0a}.tool-button{gap:7px;max-width:190px;padding:0 12px}.tool-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool-button:hover,.icon-button:hover{color:#1f4f9a;background:#f3f7ff;border-color:#98b7e7;box-shadow:0 6px 16px #2563eb1f}.tool-button:active,.icon-button:active{transform:translateY(1px)scale(.98);box-shadow:0 2px 8px #2563eb1a}.tool-button:focus-within,.tool-button:focus-visible,.icon-button:focus-visible{outline-offset:2px;outline:3px solid #3b82f638}.tool-button input{display:none}.icon-button{width:38px}.import-status{color:#315cb4;background:#eef5ff;border:1px solid #c7d7f5;border-radius:8px;max-width:1800px;margin:-4px auto 12px;padding:10px 14px;font-size:14px;font-weight:700}.import-status--info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.import-status--success{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.import-status--error{color:#b91c1c;background:#fff1f2;border-color:#fecaca}.schedule-shell{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--line);background:linear-gradient(#fff,#fbfdff);border-radius:8px;max-width:1800px;margin:0 auto;overflow:auto hidden;box-shadow:0 18px 45px #0f172a12,0 1px 2px #0f172a0d}.schedule-shell::-webkit-scrollbar{height:10px}.schedule-shell::-webkit-scrollbar-track{background:#0f172a0f;border-radius:999px}.schedule-shell::-webkit-scrollbar-thumb{background:#0f172a47 padding-box content-box;border:2px solid #0000;border-radius:999px}.schedule-grid{grid-template-columns:112px repeat(7,minmax(174px,1fr));min-width:1360px;display:grid}.timeline-schedule{grid-template-rows:88px auto}.time-heading{color:#253247;background:linear-gradient(#fdfefe,#edf3fb);flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:88px;display:flex}.time-heading span{color:var(--muted);font-size:13px}.day-heading{background:linear-gradient(#fff,#f6f9fd);grid-template-rows:42px 46px;min-height:88px;display:grid}.day-heading>strong{color:#202b3d;text-shadow:0 1px #fff;place-items:center;font-size:17px;display:grid}.person-headings{grid-template-columns:repeat(2,1fr);display:grid}.person-heading{border-top:1px solid var(--line);place-items:center;width:100%;min-width:0;padding:5px 8px;font-size:16px;font-weight:700;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff8a,inset 0 -1px #0f172a0d}.person-heading__name{text-overflow:ellipsis;white-space:nowrap;background:#ffffff6b;border:1px solid;border-radius:8px;place-items:center;max-width:5em;min-height:28px;padding:3px 8px;display:inline-grid;overflow:hidden;box-shadow:0 6px 14px #0f172a1f,inset 0 1px #ffffff94}.person-heading--alice{background:var(--alice-header-bg);color:var(--alice-header-text)}.person-heading--bob{border-left:1px solid var(--line);background:var(--bob-header-bg);color:var(--bob-header-text)}.schedule-row{display:contents}.time-axis{--row-height:8px;--hour-height:96px;grid-template-rows:repeat(var(--timeline-rows), var(--row-height));border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 2px), #9aa8bd calc(var(--hour-height) - 2px), #9aa8bd var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Cpath d='M0 7.5H24' stroke='%23dbe3ee' stroke-width='1' stroke-dasharray='3 4'/%3E%3C/svg%3E"), repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #c4cedc calc(var(--hour-height) - 1px), #c4cedc var(--hour-height)), linear-gradient(90deg, #fbfcff 0, #fff 48%, #f8fbff 100%);border-bottom:1px solid #cbd5e1;padding-bottom:28px;display:grid;position:relative;box-shadow:inset -12px 0 20px -22px #0f172a73}.time-axis:before{content:"";background:linear-gradient(#b9c8dd,#dce4ef);border-radius:999px;width:2px;position:absolute;top:0;bottom:0;left:18px}.time-mark{min-height:var(--row-height);position:relative}.time-mark--hour strong{z-index:1;color:#172033;text-align:center;background:linear-gradient(#fff,#f2f6fb);border:1px solid #ccd6e4;border-radius:999px;min-width:58px;font-size:16px;font-weight:800;line-height:28px;position:absolute;top:-15px;left:31px;box-shadow:0 1px 2px #0f172a14,0 0 0 3px #fff}.time-mark--hour:before{z-index:2;content:"";background:#fff;border:2px solid #7890ad;border-radius:999px;width:10px;height:10px;position:absolute;top:-5px;left:14px;box-shadow:0 0 0 3px #edf3fb}.time-mark--terminal{min-height:0}.time-mark--terminal strong{top:-12px}.time-mark--terminal:before{top:-4px}.day-timeline{--row-height:8px;--hour-height:96px;border-right:1px solid var(--line);background:linear-gradient(90deg,#fff,#fbfdff);border-bottom:1px solid #cbd5e1;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:28px;display:grid;position:relative}.day-timeline:before{z-index:0;pointer-events:none;content:"";background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 2px), #9aa8bd calc(var(--hour-height) - 2px), #9aa8bd var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Cpath d='M0 7.5H24' stroke='%23e1e7f0' stroke-width='1' stroke-dasharray='3 4'/%3E%3C/svg%3E"), repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #cbd4e0 calc(var(--hour-height) - 1px), #cbd4e0 var(--hour-height));position:absolute;inset:0}.person-lane{z-index:1;grid-template-rows:repeat(var(--timeline-rows), var(--row-height));min-width:0;padding:0 6px;display:grid;position:relative}.course-position{--course-auto-scale:1;min-height:0;padding:calc(4px * var(--course-auto-scale)) 0}.course-position .course-card{width:100%;height:100%}.empty-day{z-index:1;color:#737b8a;place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.time-cell{background:#fbfcfe;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:142px;font-size:16px;display:flex}.time-cell span{color:#111827;font-weight:700}.course-pair{background:#fff;grid-template-columns:repeat(2,minmax(0,1fr));min-height:142px;display:grid}.course-stack{flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:8px;display:flex}.course-stack+.course-stack{border-left:1px solid var(--line)}.course-card{--course-scale:var(--course-auto-scale,1);--course-line-height:1.35;justify-content:center;align-items:center;gap:calc(5px * var(--course-scale));width:100%;min-height:0;padding:calc(8px * var(--course-scale)) calc(7px * var(--course-scale));text-align:center;cursor:pointer;font:inherit;border:1px solid;border-radius:7px;flex-direction:column;transition:box-shadow .15s,transform .12s,filter .15s;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffffa3,0 1px 2px #0f172a0d}.course-card:hover{filter:saturate(1.04);transform:translateY(-1px);box-shadow:0 8px 18px #0f172a1f}.course-card:active{transform:translateY(0)scale(.99)}.course-card:focus-visible{outline-offset:2px;outline:3px solid #3b82f640}.course-card--alice{border-color:var(--alice-border);background:var(--alice-bg);color:var(--alice-text)}.course-card--bob{border-color:var(--bob-border);background:var(--bob-bg);color:var(--bob-text)}.course-card--shared{border-color:var(--shared-border);background:var(--shared-bg);color:var(--shared-text)}.course-card--activity{border-color:var(--activity-border);background:var(--activity-bg);color:var(--activity-text)}.course-card--compact{--course-line-height:1.18;gap:calc(2px * var(--course-scale));padding:calc(5px * var(--course-scale)) calc(6px * var(--course-scale))}.course-card__title-row{justify-content:center;align-items:center;gap:calc(5px * var(--course-scale));flex-wrap:wrap;max-width:100%;display:flex}.course-card h3{overflow-wrap:anywhere;max-width:100%;font-size:calc(16px * var(--course-scale));line-height:var(--course-line-height)}.course-card p{color:currentColor;overflow-wrap:anywhere;font-size:calc(13.5px * var(--course-scale));line-height:var(--course-line-height)}.course-card__time{font-size:calc(13.5px * var(--course-scale));font-weight:700}.week-badge{padding:calc(1px * var(--course-scale)) calc(5px * var(--course-scale));font-size:calc(13px * var(--course-scale));opacity:.86;border:1px solid;border-radius:999px;line-height:1.3}.course-card__icon{width:calc(22px * var(--course-scale));height:calc(22px * var(--course-scale));flex:none}.empty-cell{color:#a1a8b3;place-items:center;min-height:116px;font-size:18px;display:grid}.summary-panel{background:#fff;border:1px dashed #cbd3df;border-radius:8px;grid-template-columns:minmax(220px,.8fr) minmax(380px,1.5fr) minmax(280px,1.1fr);gap:0;max-width:1800px;margin:18px auto 0;display:grid;overflow:hidden;box-shadow:0 12px 32px #0f172a0d}.color-panel{background:#fff;border:1px solid #cfd8e6;border-radius:10px;width:min(920px,100%);overflow:hidden;box-shadow:0 24px 70px #0f172a40}.color-panel__header p{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.color-panel__body{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:22px 24px;display:grid}.font-settings-card{grid-column:1/-1;justify-items:center;display:grid}.font-settings-card .color-group{width:min(420px,100%)}.color-group{background:#fbfdff;border:1px solid #d9e2ee;border-radius:8px;overflow:hidden}.color-group__title{border-bottom:1px solid #d9e2ee;align-items:center;gap:9px;padding:13px 14px;display:flex}.color-group--alice .color-group__title{background:var(--alice-header-bg);color:var(--alice-header-text)}.color-group--bob .color-group__title{background:var(--bob-header-bg);color:var(--bob-header-text)}.color-group--shared .color-group__title{background:var(--shared-header-bg);color:var(--shared-header-text)}.color-group--activity .color-group__title{background:var(--activity-header-bg);color:var(--activity-header-text)}.color-group--font .color-group__title{color:var(--bauhaus-ink,#1f2937);background:#fff}.scheme-picker{color:#334155;gap:7px;padding:14px 14px 0;font-size:13px;font-weight:800;display:grid}.scheme-picker select{color:#1f2937;width:100%;min-height:38px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd8e6;border-radius:8px;padding:0 10px;font-weight:650;transition:border-color .15s,box-shadow .15s}.scheme-picker select:focus{border-color:#7fa7df;outline:none;box-shadow:0 0 0 3px #3b82f624}.scheme-description{color:#64748b;min-height:36px;padding:8px 14px 0;font-size:12px;line-height:1.45}.color-fields{gap:10px;padding:12px 14px 14px;display:grid}.color-field{color:#334155;grid-template-columns:1fr 44px;align-items:center;gap:12px;font-size:13px;font-weight:700;display:grid}.color-field input{cursor:pointer;background:#fff;border:1px solid #cfd8e6;border-radius:7px;width:44px;height:32px}.color-panel__actions{background:#f8fbff;border-top:1px solid #dde5f0;justify-content:flex-end;gap:10px;padding:16px 24px 18px;display:flex}.color-panel__actions .secondary-button{align-items:center;gap:7px;display:inline-flex}.time-range-panel{background:#fff;border:1px solid #cfd8e6;border-radius:10px;width:min(560px,100%);overflow:hidden;box-shadow:0 24px 70px #0f172a40}.time-range-panel__header p{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.time-range-panel__body{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px 24px;display:grid}.time-range-panel__body label{color:#334155;gap:7px;font-size:14px;font-weight:800;display:grid}.time-range-panel__body input{color:#1f2937;min-height:42px;font:inherit;background:#fff;border:1px solid #cfd8e6;border-radius:8px;padding:0 11px;font-weight:700;transition:border-color .15s,box-shadow .15s}.time-range-panel__body input:focus{border-color:#7fa7df;outline:none;box-shadow:0 0 0 3px #3b82f624}.time-range-preview{background:linear-gradient(#fff,#f8fbff);border:1px solid #dbe4ef;border-radius:8px;grid-column:1/-1;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.time-range-preview span{background:repeating-linear-gradient(90deg,#9aa8bd 0 8px,#0000 8px 14px);border-radius:999px;height:2px}.time-range-preview strong{color:#1e3a5f;font-size:16px}.time-range-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;border-radius:8px;grid-column:1/-1;padding:10px 12px;font-size:13px;font-weight:800}.time-range-panel__actions{background:#f8fbff;border-top:1px solid #dde5f0;justify-content:flex-end;gap:10px;padding:16px 24px 18px;display:flex}.time-range-panel__actions .secondary-button{align-items:center;gap:7px;display:inline-flex}.import-panel,.export-panel{background:#fff;border:1px solid #cfd8e6;border-radius:10px;width:min(640px,100%);overflow:hidden;box-shadow:0 24px 70px #0f172a40}.import-panel__header p,.export-panel__header p{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.import-panel__body,.export-panel__body{gap:14px;padding:22px 24px;display:grid}.drop-zone{color:#315cb4;cursor:pointer;text-align:center;background:linear-gradient(#fff,#f7fbff);border:1px dashed #9eb4d2;border-radius:10px;place-items:center;gap:8px;min-height:188px;padding:24px;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .12s;display:grid}.drop-zone:hover,.drop-zone--active{background:#eef6ff;border-color:#5f8fd8;transform:translateY(-1px);box-shadow:0 12px 26px #315cb424}.drop-zone:disabled{cursor:wait;opacity:.72;transform:none}.drop-zone strong{color:#1f3f75;font-size:16px}.drop-zone span{color:#64748b;font-size:13px;font-weight:700}.sr-only-file{display:none}.import-panel__error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:800;animation:.18s subtle-shake}.import-tips,.export-file-preview{color:#475569;background:#f8fbff;border:1px solid #dbe4ef;border-radius:8px;gap:8px;padding:14px;font-size:14px;line-height:1.55;display:grid}.import-tips div,.export-file-preview{align-items:center}.import-tips div{color:#315cb4;gap:8px;font-weight:800;display:flex}.export-file-preview{grid-template-columns:auto 1fr}.export-filename,.export-filename-input{color:#1e3a5f;min-width:0;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;font-weight:850}.export-filename{cursor:text;padding:4px 6px}.export-filename:hover{background:#eef5ff;border-color:#c7d7f5}.export-filename-input{background:#fff;border-color:#98b7e7;outline:none;width:100%;padding:6px 8px;box-shadow:0 0 0 3px #3b82f624}.export-file-preview span{grid-column:1/-1}.export-panel__actions{background:#f8fbff;border-top:1px solid #dde5f0;justify-content:flex-end;gap:10px;padding:16px 24px 18px;display:flex}.confirm-panel{background:#fff;border:1px solid #cfd8e6;border-radius:10px;width:min(540px,100%);overflow:hidden;box-shadow:0 24px 70px #0f172a40}.confirm-panel__body{color:#475569;grid-template-columns:auto 1fr;gap:12px;padding:22px 24px;line-height:1.6;display:grid}.confirm-panel__body svg{color:#d97706}.confirm-panel__actions{background:#f8fbff;border-top:1px solid #dde5f0;justify-content:flex-end;gap:10px;padding:16px 24px 18px;display:flex}.danger-confirm-button{color:#fff;cursor:pointer;background:#dc2626;border:1px solid #dc2626;border-radius:8px;min-height:40px;padding:0 16px;font-weight:800;transition:box-shadow .15s,transform .12s,background-color .15s}.danger-confirm-button:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:0 8px 18px #b91c1c24}.danger-confirm-button:active{transform:translateY(0)scale(.99)}.editor-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a57;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.course-editor{background:#fff;border:1px solid #cfd8e6;border-radius:10px;width:min(680px,100%);overflow:hidden;box-shadow:0 24px 70px #0f172a40}.editor-header{background:linear-gradient(#fff,#f7faff);border-bottom:1px solid #dde5f0;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px 18px;display:flex}.editor-header h2{font-size:24px;line-height:1.25}.editor-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px 24px 24px;display:grid}.editor-form label{color:#334155;gap:7px;font-size:14px;font-weight:700;display:grid}.editor-field--wide,.form-errors,.editor-actions{grid-column:1/-1}.editor-form input,.editor-form select{color:#1f2937;width:100%;min-height:40px;font:inherit;background:#fff;border:1px solid #cfd8e6;border-radius:8px;padding:0 11px;font-weight:500;transition:border-color .15s,box-shadow .15s}.editor-form input:focus,.editor-form select:focus{border-color:#7fa7df;outline:none;box-shadow:0 0 0 3px #3b82f624}.form-errors{background:#fff1f2;border:1px solid #fecaca;border-radius:8px;gap:5px;padding:10px 12px;display:grid}.form-errors p{color:#b91c1c;font-size:13px;font-weight:700}.editor-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.primary-button,.secondary-button,.danger-button{cursor:pointer;border-radius:8px;min-height:40px;padding:0 16px;font-weight:800;transition:box-shadow .15s,transform .12s,background-color .15s,border-color .15s}.primary-button{color:#fff;background:#315cb4;border:1px solid #2f65c8;box-shadow:0 8px 18px #315cb42e}.secondary-button{color:#344256;background:#fff;border:1px solid #cfd8e6}.danger-button{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;margin-right:auto}.primary-button:hover,.secondary-button:hover,.danger-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a1a}.primary-button:active,.secondary-button:active,.danger-button:active{transform:translateY(0)scale(.99)}.primary-button:disabled{cursor:not-allowed;box-shadow:none;color:#64748b;background:#cbd5e1;border-color:#cbd5e1;transform:none}.summary-block{min-width:0;padding:22px 28px;overflow:hidden}.summary-block h2{color:#315cb4;margin-bottom:14px;font-size:18px}.legend-list,.shared-list,.note-list{margin:0;padding:0;list-style:none}.legend-list{gap:12px;display:grid}.legend-list li{color:#425066;align-items:center;gap:10px;display:flex}.legend-swatch{border:1px solid;border-radius:4px;width:26px;height:26px}.legend-swatch--alice{border-color:var(--alice-border);background:var(--alice-bg)}.legend-swatch--bob{border-color:var(--bob-border);background:var(--bob-bg)}.legend-swatch--shared{border-color:var(--shared-border);background:var(--shared-bg)}.legend-swatch--activity{border-color:var(--activity-border);background:var(--activity-bg)}.legend-swatch--empty{border-color:var(--line);background:#fff}.shared-list,.note-list{color:#4b5563;gap:10px;display:grid}.shared-list li{grid-template-columns:130px 1fr 1fr;align-items:center;gap:12px;min-width:0;display:grid}.shared-list strong{color:#1f2937;overflow-wrap:anywhere;min-width:0}.together-count{color:#4b5563;margin-top:12px}.together-count strong{color:#315cb4;padding:0 14px;font-size:28px}@keyframes subtle-shake{0%,to{transform:translate(0)}35%{transform:translate(-3px)}70%{transform:translate(3px)}}:root{--bauhaus-canvas:#f2efe4;--bauhaus-ink:#141414;--bauhaus-red:#d02020;--bauhaus-blue:#1040c0;--bauhaus-yellow:#f0c020;--bauhaus-cream:#fff8d6;--bauhaus-muted:#ded8c8;--line:var(--bauhaus-ink);--muted:#4b4b45;--text:var(--bauhaus-ink)}body{background:radial-gradient(circle at 12% 14%, var(--bauhaus-red) 0 42px, transparent 43px), radial-gradient(circle at 92% 10%, var(--bauhaus-blue) 0 54px, transparent 55px), linear-gradient(135deg, #14141412 0 2px, transparent 2px 18px), var(--bauhaus-canvas);color:var(--bauhaus-ink);overflow-x:hidden}.app-shell{isolation:isolate;background-color:#0000;background-image:linear-gradient(90deg,#1414140d 1px,#0000 1px),linear-gradient(#1414140d 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:relative}.app-shell:before,.app-shell:after{z-index:-1;pointer-events:none;content:"";position:fixed}.app-shell:before{border:4px solid var(--bauhaus-ink);background:var(--bauhaus-yellow);width:132px;height:132px;box-shadow:10px 10px 0 var(--bauhaus-ink);top:118px;right:48px;transform:rotate(8deg)}.app-shell:after{border-right:78px solid #0000;border-bottom:132px solid var(--bauhaus-blue);width:0;height:0;filter:drop-shadow(7px 7px 0 var(--bauhaus-ink));bottom:58px;left:42px}.toolbar,.schedule-shell,.summary-panel,.import-status,.color-panel,.time-range-panel,.import-panel,.export-panel,.confirm-panel,.course-editor{z-index:1;border:3px solid var(--bauhaus-ink);background:var(--bauhaus-cream);box-shadow:8px 8px 0 var(--bauhaus-ink);border-radius:0;position:relative}.toolbar{background:linear-gradient(90deg, var(--bauhaus-yellow) 0 13px, transparent 13px), var(--bauhaus-cream);border-width:4px;align-items:stretch;padding:16px 18px}.eyebrow{border:2px solid var(--bauhaus-ink);background:var(--bauhaus-red);color:#fff;letter-spacing:.08em;text-transform:uppercase;width:fit-content;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}h1{color:var(--bauhaus-ink);letter-spacing:0;text-transform:uppercase;font-weight:950}.person-title,.title-separator,.title-quote,.title-suffix{color:var(--bauhaus-ink)}.person-title:hover,.editable-title:hover{background:var(--bauhaus-yellow);box-shadow:inset 0 0 0 2px var(--bauhaus-ink)}.person-title-input,.title-input{border:3px solid var(--bauhaus-ink);box-shadow:5px 5px 0 var(--bauhaus-ink);border-radius:0}.tool-button,.icon-button,.primary-button,.secondary-button,.danger-button,.danger-confirm-button{border:3px solid var(--bauhaus-ink);box-shadow:4px 4px 0 var(--bauhaus-ink);text-transform:uppercase;border-radius:0;font-weight:900;transition:background-color .12s,color .12s,box-shadow .12s,transform .12s}.tool-button,.icon-button,.secondary-button{color:var(--bauhaus-ink);background:#fff}.tool-button:hover,.icon-button:hover,.secondary-button:hover{border-color:var(--bauhaus-ink);background:var(--bauhaus-yellow);color:var(--bauhaus-ink);box-shadow:6px 6px 0 var(--bauhaus-ink);transform:translate(-2px,-2px)}.tool-button:active,.icon-button:active,.primary-button:active,.secondary-button:active,.danger-button:active,.danger-confirm-button:active{box-shadow:0 0 0 var(--bauhaus-ink);transform:translate(4px,4px)}.primary-button{border-color:var(--bauhaus-ink);background:var(--bauhaus-blue);color:#fff}.primary-button:hover{background:var(--bauhaus-red)}.danger-button,.danger-confirm-button{background:var(--bauhaus-red);color:#fff}.import-status{color:var(--bauhaus-ink);border-width:3px;padding-left:18px;font-weight:900}.import-status--info{border-color:var(--bauhaus-ink);color:var(--bauhaus-ink);background:#dce6ff}.import-status--success{border-color:var(--bauhaus-ink);color:var(--bauhaus-ink);background:#e5f6d6}.import-status--error{border-color:var(--bauhaus-ink);color:var(--bauhaus-ink);background:#ffd8d8}.schedule-shell{box-shadow:10px 10px 0 var(--bauhaus-ink);background:#fff;border-width:4px}.time-heading,.day-heading,.time-cell,.course-pair{border-right:3px solid var(--bauhaus-ink);border-bottom:3px solid var(--bauhaus-ink)}.time-heading{background:var(--bauhaus-yellow);color:var(--bauhaus-ink)}.day-heading{background:#fff}.day-heading>strong{color:var(--bauhaus-ink);text-transform:uppercase;text-shadow:none;font-weight:950}.person-heading{border-top:3px solid var(--bauhaus-ink);text-transform:uppercase;box-shadow:none;font-weight:950}.person-heading--alice{color:var(--alice-header-text);background:#e4e1d6;box-shadow:inset 0 -3px #1414140f}.person-heading--alice .person-heading__name{border-color:var(--alice-border);background:var(--alice-bg);color:var(--alice-text)}.person-heading--bob{color:var(--bob-header-text);background:#e4e1d6;border-left:1px solid #141414c7;box-shadow:inset 0 -3px #1414140f}.person-heading--bob .person-heading__name{border-color:var(--bob-border);background:var(--bob-bg);color:var(--bob-text)}.person-headings{border-bottom:3px solid var(--bauhaus-ink)}.person-heading{border-bottom:0}.app-shell--bauhaus .person-heading__name{box-shadow:3px 3px 0 var(--bauhaus-ink);border-width:2px;border-radius:0;font-weight:950}.schedule-title{max-width:100%;overflow:hidden}.person-title{text-overflow:ellipsis;white-space:nowrap;max-width:5em;overflow:hidden}.toolbar-actions{grid-template-rows:repeat(2,minmax(38px,auto));grid-auto-columns:max-content;grid-auto-flow:column;place-content:end flex-end;display:grid}.tool-button{max-width:190px}.tool-button span,.person-heading__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.time-axis{border-right:3px solid var(--bauhaus-ink);border-bottom:3px solid var(--bauhaus-ink);background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #141414ad calc(var(--hour-height) - 1px), #141414ad var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Cpath d='M0 7.5H24' stroke='%238b877b' stroke-width='1' stroke-dasharray='3 5' opacity='.13'/%3E%3C/svg%3E"), #fffdf4;box-shadow:inset -9px 0 #14141414}.time-axis:before{background:var(--axis-line-color);border-radius:0;width:4px}.time-mark--hour strong{border:3px solid var(--bauhaus-ink);box-shadow:4px 4px 0 var(--bauhaus-ink);color:var(--bauhaus-ink);background:#fff;border-radius:0}.time-mark--hour:before{border:3px solid var(--bauhaus-ink);border-radius:var(--axis-dot-shape);background:var(--axis-dot-color);box-shadow:none}.day-timeline{border-right:3px solid var(--bauhaus-ink);border-bottom:3px solid var(--bauhaus-ink);background:#fffdf4}.day-timeline:before{background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #141414ad calc(var(--hour-height) - 1px), #141414ad var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Cpath d='M0 7.5H24' stroke='%238b877b' stroke-width='1' stroke-dasharray='3 5' opacity='.11'/%3E%3C/svg%3E")}.person-lane+.person-lane{border-left:1px solid #141414ad}.course-card{border-width:2px;border-radius:0;font-weight:800;box-shadow:4px 4px #141414d1}.course-card:hover{box-shadow:6px 6px 0 var(--bauhaus-ink);filter:saturate(1.08)contrast(1.02);transform:translate(-2px,-2px)}.course-card:active{box-shadow:0 0 0 var(--bauhaus-ink);transform:translate(3px,3px)}.course-card h3{font-weight:950}.week-badge{background:#ffffff94;border-width:2px;border-radius:0;font-weight:950}.summary-panel{background:linear-gradient(90deg, var(--bauhaus-blue) 0 14px, transparent 14px), var(--bauhaus-cream);border-style:solid}.summary-panel--compact{grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr)}.summary-block+.summary-block{border-left:3px solid var(--bauhaus-ink)}.summary-block h2{border:2px solid var(--bauhaus-ink);background:var(--bauhaus-yellow);color:var(--bauhaus-ink);text-transform:uppercase;padding:3px 8px;font-weight:950;display:inline-flex}.legend-swatch{box-shadow:3px 3px 0 var(--bauhaus-ink);border-width:2px;border-radius:0}.editor-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(circle at 20% 18%,#d020203d,#0000 22rem),radial-gradient(circle at 82% 22%,#1040c047,#0000 24rem),#14141475}.course-editor,.color-panel,.time-range-panel,.import-panel,.export-panel,.confirm-panel{box-shadow:10px 10px 0 var(--bauhaus-ink);border-width:4px}.editor-header,.color-panel__actions,.time-range-panel__actions,.export-panel__actions,.confirm-panel__actions{border-color:var(--bauhaus-ink);background:var(--bauhaus-yellow)}.editor-header{border-bottom-width:3px}.editor-header .eyebrow{border-radius:inherit}.editor-header h2,.color-group__title,.confirm-panel__body,.import-panel__header,.export-panel__header{color:var(--bauhaus-ink)}.color-group,.time-range-preview,.drop-zone,.import-tips,.export-file-preview,.form-errors{border:3px solid var(--bauhaus-ink);background:#fff;border-radius:0;box-shadow:4px 4px #141414b8}.drop-zone{background-color:#fff;background-image:linear-gradient(135deg,#f0c02042 0 25%,#0000 25% 50%,#f0c02042 50% 75%,#0000 75%),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-style:dashed}.drop-zone:hover,.drop-zone--active{border-color:var(--bauhaus-ink);box-shadow:7px 7px 0 var(--bauhaus-ink);background-color:#fff;transform:translate(-2px,-2px)}.editor-form input,.editor-form select,.time-range-panel__body input,.scheme-picker select,.export-filename-input{border:3px solid var(--bauhaus-ink);color:var(--bauhaus-ink);background:#fff;border-radius:0;font-weight:800;box-shadow:3px 3px #141414c2}.editor-form input:focus,.editor-form select:focus,.time-range-panel__body input:focus,.scheme-picker select:focus{border-color:var(--bauhaus-ink);box-shadow:5px 5px 0 var(--bauhaus-blue)}.color-field input{border:3px solid var(--bauhaus-ink);border-radius:0}.export-filename:hover{border-color:var(--bauhaus-ink);background:var(--bauhaus-yellow)}.app-shell--bauhaus .import-panel,.app-shell--bauhaus .export-panel{background:#fff}.app-shell--bauhaus .color-panel,.app-shell--bauhaus .time-range-panel,.app-shell--bauhaus .confirm-panel,.app-shell--bauhaus .course-editor,.app-shell--bauhaus .style-panel{background:var(--bauhaus-cream)}.app-shell--bauhaus .import-panel__body,.app-shell--bauhaus .export-panel__body,.app-shell--bauhaus .export-image-panel__body{background:#fff}.app-shell--bauhaus .import-panel__header,.app-shell--bauhaus .export-panel__header,.app-shell--bauhaus .editor-header{background:var(--bauhaus-yellow);border-bottom:3px solid var(--bauhaus-ink);color:var(--bauhaus-ink);border-radius:0}.app-shell--bauhaus .editor-header h2{color:var(--bauhaus-ink);text-transform:uppercase;font-weight:950}.app-shell--bauhaus .editor-header .eyebrow{color:#fff}.app-shell--bauhaus .editor-header p:not(.eyebrow){color:#2b2b25}.style-panel{width:min(760px,100vw - 32px);max-height:calc(100vh - 40px);overflow:hidden}.style-panel__body{gap:14px;padding:18px;display:grid}.style-option{border:3px solid var(--bauhaus-ink);color:var(--bauhaus-ink);text-align:left;cursor:pointer;background:#fff;border-radius:0;grid-template-columns:94px 1fr auto;align-items:center;gap:14px;padding:12px;display:grid;box-shadow:4px 4px #141414b8}.style-option:hover,.style-option--active{background:var(--bauhaus-yellow);box-shadow:7px 7px 0 var(--bauhaus-ink);transform:translate(-2px,-2px)}.style-option strong,.style-option small{display:block}.style-option small{color:#34342f;margin-top:4px;font-weight:700}.style-option__preview{border:2px solid var(--bauhaus-ink);grid-template-columns:repeat(3,1fr);gap:5px;height:52px;padding:6px;display:grid}.style-option__preview span{border:1px solid var(--bauhaus-ink)}.style-option__preview--bauhaus{background:#fff8d6}.style-option__preview--bauhaus span:first-child{background:#f0c020}.style-option__preview--bauhaus span:nth-child(2){background:#1040c0}.style-option__preview--bauhaus span:nth-child(3){background:#d02020}.style-option__preview--classic{background:linear-gradient(135deg,#f8fbff,#eef5ff);border-color:#cbd8e7}.style-option__preview--classic span{border-color:#b9cce2;border-radius:6px}.style-option__preview--classic span:first-child{background:#e8f2ff}.style-option__preview--classic span:nth-child(2){background:#edf8ed}.style-option__preview--classic span:nth-child(3){background:#fff5d9}.style-option__preview--paper{background-color:#f8edcf;background-image:linear-gradient(135deg,#5c4b351a 25%,#0000 25% 50%,#5c4b351a 50% 75%,#0000 75%),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-color:#5c4b35}.style-option__preview--paper span{border-color:#5c4b35;border-radius:9px 5px 8px 4px}.style-option__preview--paper span:first-child{background:#f7d875}.style-option__preview--paper span:nth-child(2){background:#a8c8e4}.style-option__preview--paper span:nth-child(3){background:#de8b77}.style-panel__actions{border-top:3px solid var(--bauhaus-ink);background:var(--bauhaus-yellow);justify-content:flex-end;padding:14px 18px;display:flex}.export-image-panel{width:min(980px,100vw - 32px)}.export-image-panel__body{gap:16px;padding:18px;display:grid}.ratio-picker{flex-wrap:wrap;gap:10px;display:flex}.ratio-button{border:3px solid var(--bauhaus-ink);min-height:38px;color:var(--bauhaus-ink);box-shadow:3px 3px 0 var(--bauhaus-ink);cursor:pointer;background:#fff;border-radius:0;padding:0 14px;font-weight:900}.ratio-button:hover,.ratio-button--active{background:var(--bauhaus-yellow);box-shadow:5px 5px 0 var(--bauhaus-ink);transform:translate(-1px,-1px)}.custom-ratio-fields{border:3px solid var(--bauhaus-ink);color:var(--bauhaus-ink);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex;box-shadow:4px 4px #141414b8}.custom-ratio-fields label{align-items:center;gap:7px;font-weight:900;display:inline-flex}.custom-ratio-fields input{border:3px solid var(--bauhaus-ink);width:76px;min-height:36px;color:var(--bauhaus-ink);font:inherit;text-align:center;background:#fffdf4;border-radius:0;padding:0 8px;font-weight:900;box-shadow:3px 3px #141414b3}.custom-ratio-fields p{color:var(--bauhaus-red);flex-basis:100%;margin:0;font-size:13px;font-weight:900}.export-image-preview{border:3px solid var(--bauhaus-ink);background-color:#fffdf4;background-image:linear-gradient(45deg,#14141412 25%,#0000 25% 75%,#14141412 75%),linear-gradient(45deg,#14141412 25%,#0000 25% 75%,#14141412 75%);background-position:0 0,12px 12px;background-repeat:repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;place-items:center;min-height:260px;display:grid;overflow:hidden}.export-preview-frame{position:relative;overflow:hidden}.export-preview-scale{transform-origin:0 0;position:absolute;top:0;left:0}.export-capture{min-height:0;box-shadow:none;background:linear-gradient(90deg,#1414140d 1px,#0000 1px),linear-gradient(#1414140d 1px,#0000 1px),#f8f3e4;padding:40px;display:block;position:relative;overflow:hidden}.export-capture:before,.export-capture:after{display:none}.export-capture__subject{transform-origin:0 0;position:absolute}.export-capture .schedule-shell{width:max-content;max-width:none;margin:0;overflow:visible}.export-capture .schedule-grid{zoom:1;width:1360px;min-width:1360px}.export-capture .time-axis,.export-capture .day-timeline{--row-height:var(--export-row-height,8px);--hour-height:calc(var(--export-row-height,8px) * 12)}.export-capture .course-card{--course-scale:var(--export-course-scale,var(--course-auto-scale,1));pointer-events:none;transition:none}.export-capture .course-card:hover,.export-capture .course-card:active{filter:none;transition:none;transform:none}.app-shell--classic{--line:#d7e0ec;--muted:#667085;--axis-line-color:#94a3b8;--axis-dot-color:#fff;--axis-dot-shape:999px;background:linear-gradient(135deg,#f8fbff,#eef3f9)}.app-shell--classic:before,.app-shell--classic:after{display:none}.app-shell--classic .editor-backdrop{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fbffb8}.app-shell--classic .toolbar,.app-shell--classic .schedule-shell,.app-shell--classic .summary-panel,.app-shell--classic .import-status,.app-shell--classic .color-panel,.app-shell--classic .time-range-panel,.app-shell--classic .import-panel,.app-shell--classic .export-panel,.app-shell--classic .confirm-panel,.app-shell--classic .course-editor,.app-shell--classic .style-panel{background:#ffffffdb;border:1px solid #d8e1ef;border-radius:12px;box-shadow:0 18px 48px #1830541f}.app-shell--classic .toolbar{background:#ffffffd6}.app-shell--classic .time-heading,.app-shell--classic .day-heading,.app-shell--classic .time-cell,.app-shell--classic .course-pair,.app-shell--classic .day-timeline{border-bottom:1px solid #d8e1ef;border-right:1px solid #d8e1ef}.app-shell--classic .person-heading{text-transform:none;border-top:1px solid #d8e1ef}.app-shell--classic .person-heading--alice,.app-shell--classic .person-heading--bob{background:#eef2f6}.app-shell--classic .person-heading__name{border-width:1px;border-radius:999px;font-weight:850;box-shadow:0 8px 18px #2d486e1f}.app-shell--classic .person-heading--bob,.app-shell--classic .person-lane+.person-lane{border-left:1px solid #d8e1ef}.app-shell--classic .person-headings{border-bottom:1px solid #d8e1ef}.app-shell--classic .time-heading{background:#f5f8fc}.app-shell--classic .day-heading,.app-shell--classic .day-timeline{background:#fff}.app-shell--classic .time-axis,.app-shell--classic .day-timeline:before{background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #94a3b873 calc(var(--hour-height) - 1px), #94a3b873 var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='8' viewBox='0 0 24 8'%3E%3Cpath d='M0 7.5H24' stroke='%23c7d3e4' stroke-width='1' stroke-dasharray='3 5' opacity='.55'/%3E%3C/svg%3E"), #fff}.app-shell--classic .time-axis{box-shadow:none;border-bottom:1px solid #d8e1ef;border-right:1px solid #d8e1ef}.app-shell--classic .time-mark--hour strong{background:#fff;border:1px solid #cbd8e7;border-radius:999px;box-shadow:0 6px 18px #2d486e1a}.app-shell--classic .tool-button,.app-shell--classic .icon-button,.app-shell--classic .primary-button,.app-shell--classic .secondary-button,.app-shell--classic .danger-button,.app-shell--classic .danger-confirm-button,.app-shell--classic .ratio-button,.app-shell--classic .style-option{text-transform:none;border:1px solid #cbd8e7;border-radius:10px;box-shadow:0 8px 24px #1830541a}.app-shell--classic .course-card{border-width:1px;border-radius:8px;box-shadow:0 10px 26px #2d486e1f}.app-shell--classic .editor-header,.app-shell--classic .import-panel__header,.app-shell--classic .export-panel__header,.app-shell--classic .color-panel__actions,.app-shell--classic .time-range-panel__actions,.app-shell--classic .export-panel__actions,.app-shell--classic .confirm-panel__actions,.app-shell--classic .style-panel__actions{background:#f7faff;border-color:#d8e1ef}.app-shell--classic .import-panel__header,.app-shell--classic .export-panel__header{border-bottom:1px solid #d8e1ef;border-radius:12px 12px 0 0;box-shadow:inset 0 -1px #1830540a}.app-shell--classic .editor-header{color:#1e3a5f;background:radial-gradient(circle at 8% 0,#dbeafee6,#0000 11rem),#f8fbff;border-bottom:1px solid #d8e1ef;border-radius:12px 12px 0 0;box-shadow:inset 0 -1px #1830540a}.app-shell--classic .editor-header .eyebrow{color:#315b8f;letter-spacing:0;text-transform:none;background:#fff;border:1px solid #c7d8ef;border-radius:999px}.app-shell--classic .editor-header h2{color:#1e3a5f;text-transform:none;font-weight:850}.app-shell--classic .editor-header p:not(.eyebrow){color:#64748b}.app-shell--classic .export-image-preview,.app-shell--classic .color-group,.app-shell--classic .custom-ratio-fields,.app-shell--classic .time-range-preview,.app-shell--classic .drop-zone,.app-shell--classic .import-tips,.app-shell--classic .export-file-preview,.app-shell--classic .form-errors{background:#fff;border:1px solid #d8e1ef;border-radius:12px;box-shadow:0 10px 28px #1830541a}.app-shell--classic .custom-ratio-fields input{background:#fff;border:1px solid #cbd8e7;border-radius:10px;box-shadow:0 8px 18px #1830541a}.app-shell--paper{--bauhaus-ink:#4e3c28;--bauhaus-yellow:#edc966;--bauhaus-blue:#86abc9;--bauhaus-red:#c46d5f;--bauhaus-cream:#f8edcf;--line:#6f5739;--axis-line-color:#9a7740;--axis-dot-color:#edc966;--axis-dot-shape:8px 3px 8px 3px;background:radial-gradient(circle at 12% 18%,#a1744821 0 2px,#0000 3px) 0 0/34px 34px,radial-gradient(circle at 86% 24%,#5c4b351c 0 1px,#0000 3px) 0 0/48px 48px,radial-gradient(at 70% 74%,#c46d5f1a,#0000 23rem),linear-gradient(90deg,#5c4b350a 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#5c4b350a 1px,#0000 1px) 0 0/28px 28px,#f3e4bd}.app-shell--paper:before,.app-shell--paper:after{display:none}.app-shell--paper .editor-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(circle at 20% 20%,#edc96647,#0000 18rem),radial-gradient(circle at 80% 30%,#86abc933,#0000 20rem),#4e3c2857}.app-shell--paper .toolbar,.app-shell--paper .schedule-shell,.app-shell--paper .summary-panel,.app-shell--paper .import-status,.app-shell--paper .color-panel,.app-shell--paper .time-range-panel,.app-shell--paper .import-panel,.app-shell--paper .export-panel,.app-shell--paper .confirm-panel,.app-shell--paper .course-editor,.app-shell--paper .style-panel{background:radial-gradient(circle at 18% 12%,#ffffff6b,#0000 12rem),linear-gradient(135deg,#5c4b350f 25%,#0000 25% 50%,#5c4b350f 50% 75%,#0000 75%) 0 0/24px 24px,#f8edcf;border-color:#5c4b35;border-radius:18px 8px 16px 10px;box-shadow:7px 9px #5c4b35b8}.app-shell--paper .time-heading,.app-shell--paper .day-heading,.app-shell--paper .day-timeline,.app-shell--paper .time-axis{border-color:#5c4b35}.app-shell--paper .person-heading--bob,.app-shell--paper .person-lane+.person-lane{border-left:1px dashed #5c4b35b8}.app-shell--paper .person-heading--alice,.app-shell--paper .person-heading--bob{background:#e4d3aa}.app-shell--paper .person-heading__name{border-width:2px;border-radius:13px 5px 12px 6px;font-weight:900;box-shadow:3px 4px #5c4b356b}.app-shell--paper .time-axis,.app-shell--paper .day-timeline:before{background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour-height) - 1px), #5c4b3594 calc(var(--hour-height) - 1px), #5c4b3594 var(--hour-height)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='8' viewBox='0 0 28 8'%3E%3Cpath d='M0 7.5H28' stroke='%23746145' stroke-width='1' stroke-dasharray='3 6' opacity='.24'/%3E%3C/svg%3E"), #fbf1d6}.app-shell--paper .tool-button,.app-shell--paper .icon-button,.app-shell--paper .primary-button,.app-shell--paper .secondary-button,.app-shell--paper .danger-button,.app-shell--paper .danger-confirm-button,.app-shell--paper .ratio-button,.app-shell--paper .style-option{border-color:#5c4b35;border-radius:14px 6px 12px 8px;box-shadow:4px 5px #5c4b35b3}.app-shell--paper .course-card{border-color:currentColor;border-radius:14px 6px 12px 8px;box-shadow:4px 5px #5c4b3573}.app-shell--paper .editor-header,.app-shell--paper .import-panel__header,.app-shell--paper .export-panel__header,.app-shell--paper .color-panel__actions,.app-shell--paper .time-range-panel__actions,.app-shell--paper .export-panel__actions,.app-shell--paper .confirm-panel__actions,.app-shell--paper .style-panel__actions{background:#edc966;border-color:#5c4b35}.app-shell--paper .import-panel__header,.app-shell--paper .export-panel__header{background:radial-gradient(circle at 16% 22%,#ffffff47,#0000 9rem),#edc966;border-bottom:3px solid #5c4b35;border-radius:18px 8px 0 0}.app-shell--paper .editor-header{color:#4e3c28;background:radial-gradient(circle at 16% 22%,#ffffff4d,#0000 9rem),linear-gradient(135deg,#5c4b3512 25%,#0000 25% 50%,#5c4b3512 50% 75%,#0000 75%) 0 0/22px 22px,#edc966;border-bottom:3px solid #5c4b35;border-radius:18px 8px 0 0}.app-shell--paper .editor-header .eyebrow{color:#4e3c28;letter-spacing:0;text-transform:none;background:#fff4d8;border:2px solid #5c4b35;border-radius:12px 4px 10px 5px;box-shadow:3px 4px #5c4b356b}.app-shell--paper .editor-header h2{color:#4e3c28;text-transform:none;font-weight:900}.app-shell--paper .editor-header p:not(.eyebrow){color:#6f5739}.app-shell--paper .export-image-preview,.app-shell--paper .color-group,.app-shell--paper .custom-ratio-fields,.app-shell--paper .time-range-preview,.app-shell--paper .drop-zone,.app-shell--paper .import-tips,.app-shell--paper .export-file-preview,.app-shell--paper .form-errors{background-color:#fff4d8;background-image:linear-gradient(135deg,#5c4b350d 25%,#0000 25% 50%,#5c4b350d 50% 75%,#0000 75%),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:22px 22px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-color:#5c4b35;border-radius:18px 8px 16px 10px;box-shadow:4px 5px #5c4b3575}.app-shell--paper .custom-ratio-fields input{background:#fff4d8;border-color:#5c4b35;border-radius:12px 4px 10px 6px;box-shadow:3px 4px #5c4b356b}.tool-button--image-export{background:linear-gradient(135deg, #ffffff5c 0 34%, transparent 34%), var(--bauhaus-red);color:#fff;flex-direction:column;grid-row:span 2;gap:8px;min-width:112px;max-width:132px;min-height:84px;padding:10px 14px}.tool-button--image-export span{white-space:normal}.tool-button--image-export:hover{background:linear-gradient(135deg, #ffffff57 0 34%, transparent 34%), var(--bauhaus-blue);color:#fff}.app-shell--classic .tool-button--image-export{color:#1f4f86;background:linear-gradient(135deg,#ffffff8f 0 34%,#0000 34%),#d9ecff;border-color:#7aa7dc;box-shadow:0 14px 30px #4682be2e}.app-shell--classic .tool-button--image-export:hover{color:#183f6c;background:linear-gradient(135deg,#ffffff9e 0 34%,#0000 34%),#c5e2ff}.app-shell--paper .tool-button--image-export{color:#fff8e8;background:radial-gradient(circle at 18% 18%,#fff4d894,#0000 52%),#c46d5f;border-color:#5c4b35;box-shadow:5px 7px #5c4b35b8}.app-shell--paper .tool-button--image-export:hover{color:#fff8e8;background:radial-gradient(circle at 18% 18%,#fff4d894,#0000 52%),#a9574d}@media (prefers-reduced-motion:reduce){.tool-button,.icon-button,.primary-button,.secondary-button,.danger-button,.danger-confirm-button,.course-card,.drop-zone{transition:none}}@media (width<=980px){.app-shell{padding:16px}.toolbar{flex-direction:column;align-items:flex-start}.toolbar-actions{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,max-content));grid-auto-flow:row;justify-content:flex-start}.schedule-title{max-width:calc(100vw - 72px)}.person-title{max-width:5em}.tool-button{max-width:168px}.summary-panel,.color-panel__body{grid-template-columns:1fr}.summary-block+.summary-block{border-top:1px dashed #cbd3df;border-left:0}}@media (width<=760px){.schedule-shell{max-width:100%}.schedule-grid{min-width:1360px}}@media (width<=640px){.person-title{max-width:5em}.tool-button{max-width:150px}.editor-form,.time-range-panel__body{grid-template-columns:1fr}.danger-button{margin-right:0}}
