:root{color-scheme:light;--primary: #1e3a5f;--primary-light: #3d5a80;--primary-dark: #0d1b2a;--primary-container: #d1e3f8;--secondary: #2e7d32;--secondary-light: #4caf50;--secondary-container: #c8e6c9;--tertiary: #0288d1;--tertiary-container: #b3e5fc;--bg: #f5f7fa;--surface: #ffffff;--surface-variant: #e8ecf0;--border: #d8dee6;--text: #1e3a5f;--text-muted: #5c6b7a;--error: #d32f2f;--error-bg: #ffebee;--error-border: #ffcdd2;--success: #388e3c;--success-bg: #e8f5e9;--success-border: #c8e6c9;--warning: #f57c00;--warning-bg: #fff8e1;--warning-border: #ffe0b2;--radius: 12px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}a{color:var(--primary)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--primary);color:#fff;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 2px 8px #0d1b2a26}.app-header h1{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.app-header .btn-ghost{color:#fff;border-color:#ffffff59;background:#ffffff14}.app-header .btn-ghost:hover{background:#ffffff29}.app-main{flex:1;padding:20px;max-width:1100px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #1e3a5f0a}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}label{display:flex;flex-direction:column;gap:4px;font-size:.875rem;color:var(--text-muted);font-weight:500}input,select,textarea{border:1px solid var(--border);border-radius:10px;padding:9px 11px;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-container);border-color:var(--primary-light)}textarea{min-height:72px;resize:vertical}.btn{border:none;border-radius:10px;padding:9px 14px;cursor:pointer;background:var(--surface-variant);color:var(--text);font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-light)}.btn-secondary{background:var(--secondary-container);color:var(--secondary)}.btn-secondary:hover:not(:disabled){background:#b9dcc0}.btn-ghost{background:transparent;border:1px solid var(--border)}.alert{border-radius:10px;padding:10px 12px;font-size:.9rem}.alert-error{background:var(--error-bg);color:#991b1b;border:1px solid var(--error-border)}.alert-success{background:var(--success-bg);color:#1b5e20;border:1px solid var(--success-border)}.alert-warning{background:var(--warning-bg);color:#92400e;border:1px solid var(--warning-border)}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--primary-dark) 0%,var(--primary) 55%,var(--primary-light) 100%)}.login-card{width:100%;max-width:400px;border:none;box-shadow:0 12px 40px #0d1b2a40}.login-card h1{margin:0 0 4px;color:var(--primary)}.login-card p{margin:0 0 16px;color:var(--text-muted)}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.member-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:.85rem;cursor:pointer;background:#fff;color:var(--text);font-weight:500}.chip.selected{background:var(--primary-container);border-color:var(--primary);color:var(--primary)}.day-grid-wrapper{position:relative}.day-grid-wrapper--loading .day-grid{opacity:.55;pointer-events:none}.day-grid{display:grid;gap:12px;transition:opacity .15s ease}@media(min-width:900px){.day-grid{grid-template-columns:repeat(2,1fr)}}.day-card h3{margin:0 0 8px;font-size:.95rem;color:var(--primary)}.day-card .date-sub{color:var(--text-muted);font-weight:400;font-size:.85rem}.muted{color:var(--text-muted);font-size:.875rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a73;display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:16px}@media(min-width:700px){.modal-backdrop{align-items:center}}.modal-panel{background:var(--bg);width:100%;max-width:720px;max-height:88vh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px #0d1b2a40}@media(min-width:700px){.modal-panel{border-radius:16px}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;background:var(--surface);border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.05rem;color:var(--primary)}.modal-body{overflow:auto;padding:16px 18px 24px}.preview-day-section h3{margin:0 0 8px;font-size:.9rem;color:var(--text-muted);font-weight:600}.preview-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.preview-card--rest{color:var(--text-muted);display:flex;align-items:center;gap:8px}.preview-card--error{color:var(--error);background:var(--error-bg);border-color:var(--error-border)}.preview-meta{font-size:.8rem;color:var(--text-muted);margin-bottom:8px}.preview-chip{display:inline-block;background:#2e7d321f;color:var(--secondary);font-size:.75rem;font-weight:700;padding:4px 8px;border-radius:8px;margin-bottom:8px}.preview-notes,.preview-summary{margin:0 0 10px;color:var(--text);line-height:1.4}.preview-structure-label{font-size:.75rem;font-weight:700;letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase}.preview-step{margin-bottom:10px}.preview-segment{display:flex;gap:10px;align-items:flex-start}.preview-segment-icon{width:32px;height:32px;border-radius:8px;background:#1e3a5f1a;display:grid;place-items:center;font-size:.9rem;flex-shrink:0}.preview-segment-title{font-weight:700;color:var(--primary);font-size:.9rem}.preview-segment-details{font-size:.85rem;color:var(--text-muted);margin-top:2px}.preview-repeat{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--tertiary);font-size:.9rem;margin-bottom:6px}.preview-repeat-icon{font-size:1rem}.day-inline-preview{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.day-inline-preview-label{font-size:.75rem;font-weight:700;color:var(--text-muted);margin-bottom:8px}.copy-group-select select{min-width:160px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
