:root{color:#1e2428;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f5f3ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:28px}.intro{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:#687179;margin:0 0 6px;font-size:13px;font-weight:700}h1,h2,p{margin:0}h1{color:#171c20;font-size:clamp(30px,4vw,48px);line-height:1.02}h2{color:#171c20;font-size:18px;line-height:1.2}.intro-actions{justify-content:flex-end;display:flex}.workspace{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:18px;min-width:0;display:grid}.planner-panel,.output-panel{background:#fffdf9;border:1px solid #d8d1c7;border-radius:8px;box-shadow:0 12px 26px #25201814}.planner-panel{min-width:0;padding:18px}.output-panel{min-width:0;padding:18px;position:sticky;top:20px}.toolbar,.week-controls,.panel-heading,.settings-grid,.field,.segmented,.range-row,.empty-state{align-items:center;display:flex}.toolbar{justify-content:space-between;gap:16px;margin-bottom:14px}.week-controls{gap:8px}.week-label{color:#273038;text-align:right;font-size:15px;font-weight:800}.button,.icon-button{letter-spacing:0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;font-weight:800;transition:background .12s,border-color .12s,color .12s,transform .12s;display:inline-flex}.button{padding:0 14px}.icon-button{width:38px;padding:0}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px)}.primary{color:#fff;background:#177c79;border-color:#156c6a}.primary:hover:not(:disabled){background:#0f6867}.secondary,.icon-button{color:#273038;background:#fff;border-color:#d8d1c7}.secondary:hover:not(:disabled),.icon-button:hover:not(:disabled){background:#f3eee6;border-color:#b5ab9b}.subtle{color:#687179;background:0 0;border-color:#0000}.subtle:hover:not(:disabled){color:#ad3d49;border-color:#e5ddd1}.settings-grid{background:#f8f5ef;border:1px solid #e8e1d8;border-radius:8px;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px}.field{gap:8px}.field span{color:#687179;font-size:13px;font-weight:800}select{color:#273038;background:#fff;border:1px solid #d8d1c7;border-radius:8px;min-width:96px;min-height:38px;padding:0 32px 0 10px;font-weight:700}.snap-field{flex:1;min-width:240px}.segmented{background:#fff;border:1px solid #d8d1c7;border-radius:8px;overflow:hidden}.segmented button{color:#414a51;background:0 0;border:0;border-right:1px solid #e7dfd3;min-height:36px;padding:0 14px;font-weight:800}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:#222a30}.calendar-scroll{background:#fff;border:1px solid #ddd5ca;border-radius:8px;max-width:100%;overflow-x:auto}.calendar-grid{--hour-height:96px;--ten-minute-height:calc(var(--hour-height) / 6);grid-template-columns:72px repeat(7,minmax(112px,1fr));min-width:960px;display:grid}.time-header,.day-header{z-index:3;background:#fffdf9;border-bottom:1px solid #ddd5ca;min-height:48px;position:sticky;top:0}.time-header{z-index:4;border-right:1px solid #ddd5ca;left:0}.day-header{color:#263038;border-right:1px solid #eee7dc;justify-content:center;align-items:center;font-size:13px;font-weight:900;display:flex}.today-dot{align-items:center;gap:6px;display:inline-flex}.today-dot:before{content:"";background:#d85850;border-radius:999px;width:7px;height:7px}.time-axis,.day-column{height:calc(var(--hour-count) * var(--hour-height));min-height:360px}.time-axis{z-index:2;background:repeating-linear-gradient(to bottom, #777e841a 0, #777e841a 1px, transparent 1px, transparent var(--ten-minute-height)), #fffdf9;color:#7a8288;text-align:right;border-right:1px solid #ddd5ca;flex-direction:column;justify-content:space-between;padding:0 10px 0 0;display:flex;position:sticky;left:0}.time-mark{height:0;font-size:12px;font-weight:800;line-height:1;transform:translateY(-8px)}.time-mark:first-child{transform:translateY(8px)}.time-mark:last-child{transform:translateY(-16px)}.day-column{background:repeating-linear-gradient(to bottom, #7b726733 0, #7b726733 1px, transparent 1px, transparent var(--hour-height)), repeating-linear-gradient(to bottom, #777e841a 0, #777e841a 1px, transparent 1px, transparent var(--ten-minute-height)), #fff;touch-action:none;-webkit-user-select:none;user-select:none;border-right:1px solid #eee7dc;position:relative}.day-column:hover{background:repeating-linear-gradient(to bottom, #7b726747 0, #7b726747 1px, transparent 1px, transparent var(--hour-height)), repeating-linear-gradient(to bottom, #777e8424 0, #777e8424 1px, transparent 1px, transparent var(--ten-minute-height)), #fbf8f2}.hour-line{display:none}.range-block{z-index:1;color:#0d5551;letter-spacing:0;text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#e2f5f0;border:1px solid #116d67;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:0;padding:5px 8px;font-size:12px;font-weight:900;display:flex;position:absolute;left:8px;right:8px;overflow:hidden;box-shadow:0 5px 12px #0b524b24}.range-block:hover{background:#d1eee8}.moving-range,.resizing-range{z-index:5;background:#cfede7;box-shadow:0 9px 18px #0b524b33}.moving-range{cursor:grabbing}.resizing-range{cursor:ns-resize}.compact-range{border-radius:7px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;line-height:1;box-shadow:0 3px 8px #0b524b1a}.range-resize-handle{z-index:2;opacity:0;height:min(10px,50%);transition:opacity .12s;position:absolute;left:0;right:0}.range-resize-handle:after{content:"";background:#0e6d67;border-radius:999px;height:2px;position:absolute;left:14px;right:14px}.top-handle{cursor:n-resize;top:0}.top-handle:after{top:3px}.bottom-handle{cursor:s-resize;bottom:0}.bottom-handle:after{bottom:3px}.range-block:hover .range-resize-handle,.resizing-range .range-resize-handle{opacity:.72}.draft-range{color:#8b312d;pointer-events:none;background:#d858502e;border-color:#c45550}.output-panel{flex-direction:column;gap:14px;display:flex}.panel-heading{justify-content:space-between;gap:12px}.panel-heading p{color:#687179;margin-top:4px;font-size:13px;font-weight:700}.output-text{resize:vertical;color:#1f262b;background:#fff;border:1px solid #d8d1c7;border-radius:8px;width:100%;min-height:220px;padding:12px;font-size:14px;font-weight:700;line-height:1.65}.output-text::placeholder{color:#899197;font-weight:600}.copy-error{color:#ad3d49;font-size:13px;font-weight:700}.range-list{gap:8px;display:grid}.range-row{color:#273038;background:#fbf8f2;border:1px solid #e4dcd0;border-radius:8px;justify-content:space-between;gap:8px;min-height:44px;padding:8px 8px 8px 12px;font-size:13px;font-weight:800}.range-row span{overflow-wrap:anywhere;min-width:0}.empty-state{color:#687179;border:1px dashed #c9c0b2;border-radius:8px;justify-content:center;gap:8px;min-height:72px;font-size:13px;font-weight:800}@media (width<=1120px){.workspace{grid-template-columns:1fr}.output-panel{position:static}}@media (width<=720px){.app-shell{padding:18px 14px}.intro,.toolbar,.panel-heading{flex-direction:column;align-items:stretch}.intro-actions,.week-controls,.panel-heading .button,.button,.panel-heading .button{width:100%}.week-controls{grid-template-columns:42px minmax(0,1fr) 42px;display:grid}.week-controls .button{width:100%;min-width:0}.week-controls .icon-button{width:42px;min-width:42px}.week-label{text-align:left}.planner-panel,.output-panel{padding:14px}.settings-grid{flex-direction:column;align-items:stretch;min-width:0;overflow:hidden}.field{flex-direction:column;align-items:stretch;min-width:0}select{width:100%}.snap-field{min-width:0}.segmented{grid-template-columns:repeat(4,1fr);width:100%;min-width:0;display:grid}.segmented button{min-width:0;padding:0 6px}.calendar-grid{grid-template-columns:62px repeat(7,104px);min-width:790px}}
