﻿:root{--color-app:#f7f9fd;--color-panel:#fff;--color-panel-soft:#fbfcff;--color-ink:#182033;--color-muted:#74809a;--color-line:#e7ebf4;--color-line-strong:#dbe2ef;--color-rail:#171d28;--color-rail-soft:#21293a;--color-rail-line:#262f42;--color-accent:#5568ff;--color-accent-soft:#eef1ff;--color-fixed:#d8def9;--color-fixed-line:#7387ff;--color-task:#edf1ff;--color-task-line:#95a6ff;--color-soft:#eff2fa;--color-soft-line:#b2bfeb;--color-focus:#d3dcff;--color-focus-line:#5366e5;--color-signal:#e05d5d;--color-success:#237c57;--color-success-soft:#237c571a;--color-danger:#c45d4f;--color-danger-soft:#c45d4f1a;--font-ui:"Segoe UI Variable", "Aptos", "Segoe UI", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-s:10px;--radius-m:16px;--radius-l:20px;--shadow-panel:0 16px 40px #1820330f;--shadow-sheet:-18px 0 44px #18203324;--motion-fast:.15s cubic-bezier(.2, .8, .2, 1);--motion-medium:.22s cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{font-size:16px}body{min-height:100vh;color:var(--color-ink);background:var(--color-app);font-family:var(--font-ui);text-rendering:optimizelegibility;margin:0}a{color:inherit}button,textarea,select{font:inherit}button{appearance:none}button:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #5568ff59}.planner-shell{isolation:isolate;grid-template-columns:88px minmax(0,1fr);min-height:100vh;display:grid;position:relative}.planner-rail{justify-content:space-between;gap:var(--space-6);background:var(--color-rail);color:#eef2ff;border-right:1px solid var(--color-rail-line);flex-direction:column;padding:20px 8px 16px;display:flex}.rail-brand{letter-spacing:-.04em;text-transform:lowercase;padding:0 6px;font-size:1.05rem;font-weight:760}.rail-nav{align-content:start;gap:6px;display:grid}.rail-button{color:#eef2ffd1;text-align:left;cursor:pointer;width:100%;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast);background:0 0;border:1px solid #0000;border-radius:14px;justify-items:start;gap:4px;padding:10px 12px;display:grid}.rail-button strong{color:#eef2ff8a;font-size:.78rem}.rail-button:hover{color:#fff;background:#ffffff0a}.rail-button:active{transform:translateY(1px)}.rail-button-active,.rail-button-highlight{background:var(--color-rail-soft);color:#fff;border-color:#ffffff0f}.rail-footer{border-top:1px solid #ffffff14;gap:6px;padding:12px 8px 0;display:grid}.rail-footer-label,.calendar-label,.sheet-kicker,.sheet-field span,.task-row-list,.task-row-meta span,.calendar-day-head span,.calendar-corner,.calendar-time-slot{letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.rail-footer-label{color:#eef2ff7a}.rail-footer strong{color:#eef2ffe0;font-size:.84rem;line-height:1.35}.planner-workspace{grid-template-rows:auto auto minmax(0,1fr);min-height:100vh;display:grid}.app-topbar{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-line);background:var(--color-panel);padding:18px 24px;display:flex}.app-title{font-size:1.02rem;font-weight:700}.app-actions{align-items:center;gap:10px;display:flex}.app-button{cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast), box-shadow var(--motion-fast);border-radius:12px;padding:10px 14px;font-weight:650}.app-button:hover{transform:translateY(-1px)}.app-button:active{transform:translateY(1px)}.app-button-primary{background:var(--color-accent);color:#fff;border:1px solid #0000;box-shadow:0 8px 22px #5568ff33}.app-button-primary:hover{background:#6476ff}.app-button-secondary{border:1px solid var(--color-line-strong);background:var(--color-panel);color:var(--color-ink)}.app-button-secondary:hover{background:var(--color-panel-soft)}.month-strip{justify-content:space-between;align-items:center;gap:var(--space-6);border-bottom:1px solid var(--color-line);background:var(--color-panel);padding:18px 24px 16px;display:flex}.month-strip h1,.calendar-panel-head h2,.task-sheet-head h2{letter-spacing:-.04em;margin:0}.month-strip h1{font-size:2rem;font-weight:760;line-height:1}.month-legend,.calendar-note{color:var(--color-muted);font-size:.88rem}.month-legend{flex-wrap:wrap;align-items:center;gap:18px;margin-top:10px;display:flex}.month-legend span,.calendar-legend span{align-items:center;gap:8px;display:inline-flex}.calendar-panel{grid-template-rows:auto minmax(0,1fr);min-height:0;padding:16px;display:grid}.calendar-panel-head{justify-content:space-between;align-items:end;gap:var(--space-6);padding:0 8px 12px;display:flex}.calendar-label,.calendar-corner,.calendar-time-slot,.sheet-kicker,.sheet-field span,.task-row-list,.task-row-meta span{color:var(--color-muted)}.calendar-panel-head h2{font-size:1.1rem;font-weight:720;line-height:1.1}.calendar-note{text-align:right;max-width:320px}.calendar-frame{border:1px solid var(--color-line);border-radius:var(--radius-l);background:var(--color-panel);min-height:0;box-shadow:var(--shadow-panel);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.calendar-head{border-bottom:1px solid var(--color-line);grid-template-columns:48px repeat(7,minmax(138px,1fr));display:grid}.calendar-corner,.calendar-day-head{padding:10px 8px}.calendar-day-head{border-left:1px solid var(--color-line);justify-items:center;gap:4px;display:grid}.calendar-day-head strong{border-radius:999px;place-items:center;min-width:26px;min-height:26px;padding:0 6px;font-size:.95rem;font-weight:760;display:inline-grid}.calendar-day-head-today strong{background:var(--color-accent);color:#fff}.calendar-body{grid-template-columns:48px minmax(0,1fr);min-height:0;display:grid;overflow:auto}.calendar-time-column{background:var(--color-panel-soft)}.calendar-time-slot{height:74px;padding:7px 8px 0}.calendar-grid{grid-template-columns:repeat(7,minmax(138px,1fr));display:grid}.calendar-day{border-left:1px solid var(--color-line);min-height:1258px;position:relative}.calendar-day-today{background:linear-gradient(#5568ff0a,#0000 18%)}.calendar-line{border-top:1px solid var(--color-line);height:74px}.calendar-line:first-child{border-top:0}.calendar-now{background:var(--color-signal);z-index:3;height:2px;position:absolute;left:0;right:0}.calendar-now:before{content:"";background:var(--color-signal);border-radius:999px;width:10px;height:10px;position:absolute;top:-4px;left:-5px}.calendar-now span{background:var(--color-panel);color:var(--color-signal);padding:0 6px;font-size:.7rem;font-weight:700;position:absolute;top:-11px;left:12px}.calendar-block{transition:transform var(--motion-fast), box-shadow var(--motion-fast), border-color var(--motion-fast);border:1px solid #1820330f;border-left-width:3px;border-radius:10px;align-content:start;gap:2px;padding:8px 10px;display:grid;position:absolute;left:5px;right:5px;box-shadow:0 8px 18px #1820330f}.calendar-block:hover{transform:translateY(-1px);box-shadow:0 10px 22px #18203317}.calendar-block:active{transform:translateY(0)}.calendar-block strong{font-size:.78rem;line-height:1.25}.calendar-block span{color:var(--color-muted);font-size:.72rem}.legend-swatch{border-radius:999px;width:8px;height:8px;display:inline-block}.legend-swatch-fixed{background:var(--color-fixed-line)}.legend-swatch-task{background:var(--color-task-line)}.legend-swatch-soft{background:var(--color-soft-line)}.tone-fixed{background:var(--color-fixed);border-left-color:var(--color-fixed-line)}.tone-task{background:var(--color-task);border-left-color:var(--color-task-line)}.tone-soft{background:var(--color-soft);border-left-color:var(--color-soft-line)}.tone-focus{background:var(--color-focus);border-left-color:var(--color-focus-line)}.sheet-scrim{opacity:0;pointer-events:none;transition:opacity var(--motion-medium);z-index:8;background:#171d282e;border:0;position:fixed;inset:0}.sheet-scrim-visible{opacity:1;pointer-events:auto}.task-sheet{gap:var(--space-5);background:var(--color-panel);width:420px;color:var(--color-ink);border-left:1px solid var(--color-line);box-shadow:var(--shadow-sheet);transition:transform var(--motion-medium);z-index:9;grid-template-rows:auto auto auto minmax(0,1fr);padding:24px;display:grid;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.task-sheet-open{transform:translate(0)}.task-sheet-head{justify-content:space-between;align-items:start;gap:var(--space-4);display:flex}.task-sheet-head h2{font-size:1.7rem;font-weight:740;line-height:1}.sheet-close{border:1px solid var(--color-line);background:var(--color-panel-soft);width:40px;height:40px;color:var(--color-ink);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), transform var(--motion-fast);border-radius:999px;font-size:1.35rem;line-height:1}.sheet-close:hover{background:#fff}.sheet-close:active{transform:translateY(1px)}.sheet-compose{gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-line);display:grid}.compose-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sheet-field{gap:var(--space-2);display:grid}.sheet-field-full{grid-column:1/-1}.sheet-field select,.sheet-textarea{border:1px solid var(--color-line);background:var(--color-panel-soft);width:100%;color:var(--color-ink);border-radius:14px}.sheet-field select{padding:11px 12px}.sheet-textarea{resize:vertical;min-height:124px;padding:12px 14px;line-height:1.55}.sheet-textarea::placeholder{color:#8b95aa}.sheet-textarea[aria-invalid=true]{background:#c45d4f0a;border-color:#c45d4f75}.sheet-compose-actions{gap:var(--space-3);display:flex}.sheet-submit,.sheet-secondary,.row-action{cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), opacity var(--motion-fast), transform var(--motion-fast);border-radius:12px;padding:11px 14px}.sheet-submit{background:var(--color-accent);color:#fff;border:1px solid #0000;font-weight:700}.sheet-submit:hover:not(:disabled){background:#6678ff}.sheet-submit-loading{opacity:.82}.sheet-secondary,.row-action{border:1px solid var(--color-line);background:var(--color-panel-soft);color:var(--color-ink)}.sheet-secondary:hover:not(:disabled),.row-action:hover{background:#fff}.row-action-danger{color:var(--color-danger);background:#c45d4f0f}.row-action-danger:hover{background:#c45d4f1f}.sheet-submit:active,.sheet-secondary:active,.row-action:active{transform:translateY(1px)}.sheet-submit:disabled,.sheet-secondary:disabled{opacity:.45;cursor:not-allowed}.sheet-messages{gap:var(--space-2);display:grid}.sheet-error,.sheet-feedback{border-radius:12px;margin:0;padding:10px 12px;font-size:.9rem;line-height:1.45}.sheet-error{background:var(--color-danger-soft);color:var(--color-danger)}.sheet-feedback{background:var(--color-success-soft);color:var(--color-success)}.sheet-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.sheet-filter{border:1px solid var(--color-line);background:var(--color-panel-soft);color:var(--color-muted);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast);border-radius:999px;padding:8px 12px}.sheet-filter:hover{color:var(--color-ink);background:#fff}.sheet-filter:active{transform:translateY(1px)}.sheet-filter-active{background:var(--color-accent-soft);color:#4458df;border-color:#cdd4ff}.sheet-list{align-content:start;min-height:0;display:grid;overflow:auto}.sheet-empty{gap:var(--space-2);border:1px dashed var(--color-line-strong);background:var(--color-panel-soft);border-radius:16px;padding:18px;display:grid}.sheet-empty strong{font-size:1rem}.sheet-empty span{color:var(--color-muted);line-height:1.5}.task-row{gap:var(--space-3);border-bottom:1px solid var(--color-line);padding:16px 0;display:grid}.task-row-main{gap:var(--space-3);color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:grid}.task-row-top,.task-row-meta,.task-row-actions{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.task-row-main h3{margin:0;font-size:1.02rem;line-height:1.4}.task-row-main:hover h3,.task-row-main-active h3{color:#3348cb}.task-row-list,.task-row-meta span{color:var(--color-muted);letter-spacing:normal;text-transform:none;font-weight:500}.priority-badge{letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;padding:5px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.priority-high{color:#c84c64;background:#dd687a1f}.priority-medium{color:#b17800;background:#f0bc4724}.priority-low{color:#2f8957;background:#4bab7424}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}@media (max-width:1024px){.planner-shell{grid-template-columns:1fr}.planner-rail{flex-direction:row;align-items:center;padding:16px 18px}.rail-nav{flex:1;justify-content:center;display:flex}.rail-footer{display:none}}@media (max-width:820px){.app-topbar,.month-strip,.calendar-panel-head,.app-actions,.compose-grid,.sheet-compose-actions,.task-row-top,.task-row-meta,.task-row-actions{display:grid}.calendar-head{grid-template-columns:48px repeat(7,minmax(124px,1fr))}.calendar-body{grid-template-columns:48px minmax(0,1fr)}.calendar-grid{grid-template-columns:repeat(7,minmax(124px,1fr))}.task-sheet{width:100%}}
