:root{--bg: #ffffff;--bg-soft: #f7f6fb;--bg-sunk: #eeecf6;--border: #e6e3f0;--border-strong: #d3cee3;--text: #201d2e;--text-soft: #5d5875;--text-mute: #918aa8;--accent: #6b4df5;--accent-strong: #5a3ce0;--accent-soft: #efeaff;--coral: #f4695a;--coral-soft: #fdecea;--brand-grad: linear-gradient(90deg, var(--accent), var(--coral));--danger: #e5544a;--ok: #2fa85a;--radius: 9px;--shadow: 0 10px 34px rgba(45, 30, 90, .16);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Malgun Gothic,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg-soft);color:var(--text);font-size:14px;line-height:1.45}body:before{content:"";position:fixed;inset:0 0 auto 0;height:4px;z-index:200;background:linear-gradient(90deg,var(--accent),var(--coral),var(--accent));background-size:200% 100%;animation:brand-strip 5s linear infinite}@keyframes brand-strip{to{background-position:200% 0}}@media (prefers-reduced-motion: reduce){body:before{animation:none}}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}::selection{background:var(--accent-soft)}.past-dates{margin-top:20px;padding-top:12px;border-top:1px solid var(--border-strong)}.past-dates-title{font-size:14px;color:var(--text-soft)}.app{max-width:1080px;margin:0 auto;padding:16px 16px 80px}.app-header{display:flex;align-items:center;gap:14px;padding:0 2px 14px;flex-wrap:wrap}.app-logo{height:38px;width:auto;display:block}.app-sub{color:var(--text-mute);font-size:12px;padding-left:12px;border-left:1px solid var(--border-strong)}@media (max-width: 560px){.app-sub{display:none}}.plan-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:var(--accent);border:1px solid var(--accent-strong);border-radius:var(--radius);padding:10px}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tab{border:1px solid transparent;background:transparent;color:var(--text-soft);padding:6px 12px;border-radius:6px}.tab.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.plan-picker{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.plan-select{padding:6px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg);max-width:260px}.plan-current{font-weight:700;display:inline-flex;align-items:center;gap:7px;color:#fff;padding:5px 6px 5px 4px}.btn{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);padding:7px 12px;border-radius:6px}.btn:hover{background:var(--bg-soft)}.btn-sm{padding:5px 9px;font-size:13px}.btn-xs{padding:3px 7px;font-size:12px;border-radius:5px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--coral-soft);border-color:var(--danger);color:var(--danger)}.btn-gpt{background:var(--coral-soft);border-color:var(--coral);color:var(--coral);font-weight:600}.btn-gpt:hover{background:#fbe0dc}.btn-danger-ghost{color:var(--danger);border-color:#e8c6c3}.btn-danger-ghost:hover{background:var(--coral-soft)}.icon-btn{border:none;background:transparent;color:var(--text-soft);padding:3px 6px;border-radius:5px;line-height:1}.icon-btn:hover{background:var(--bg-sunk)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.search{flex:1 1 200px;min-width:160px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg)}.filter-select{padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg)}.plan-view-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-top:12px}.plan-view-header .view-toggle{margin-top:0;flex:none}.plan-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-left:auto}.plan-actions .btn{white-space:nowrap}.select-all{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-soft);white-space:nowrap}.select-all input{width:15px;height:15px}.selection-bar{margin-top:10px;padding:8px 12px;background:var(--accent-soft);border:1px solid #d9cefb;border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sel-count{font-weight:600;color:var(--accent)}.sel-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.sel-actions select{padding:5px 8px;border:1px solid var(--border-strong);border-radius:6px}.progress-panel{margin-top:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.pp-total{font-size:13px;color:var(--text-soft);margin-bottom:8px}.pp-bars{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.pp-item-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}.pp-frac{color:var(--text-mute)}.pp-track{height:6px;background:var(--bg-sunk);border-radius:4px;overflow:hidden}.pp-fill{height:100%;background:var(--brand-grad);border-radius:4px}.list-window{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.lw-info{font-size:12.5px;color:var(--text-soft)}.lw-spacer{flex:1 1 auto}.list-more-btn{display:block;width:100%;border:1px dashed var(--coral);background:var(--coral-soft);color:var(--coral);font-weight:700;padding:10px 12px;border-radius:var(--radius);text-align:center}.list-more-btn:hover{background:#fbe0dc}.list-all-toggle{display:block;margin:8px auto 0;border:none;background:none;color:var(--text-mute);font-size:12.5px;text-decoration:underline}.list-all-toggle:hover{color:var(--accent)}.groups{margin-top:14px;display:flex;flex-direction:column;gap:14px}.period-group{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.pg-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;padding:10px 12px 10px 14px;background:var(--bg-soft);border-bottom:1px solid var(--border);border-left:3px solid var(--accent)}.pg-title{display:flex;align-items:center;gap:8px}.pg-label-btn{border:none;background:transparent;display:flex;flex-direction:column;align-items:flex-start;padding:2px 4px;border-radius:5px}.pg-label-btn:hover{background:var(--bg-sunk)}.pg-label{font-weight:700;letter-spacing:.04em;color:var(--accent-strong)}.pg-sub{font-size:11px;color:var(--text-mute)}.pg-count{background:var(--bg-sunk);color:var(--text-soft);border-radius:10px;padding:1px 8px;font-size:12px}.pg-progress{display:flex;flex-wrap:wrap;gap:4px}.pg-prog-chip{font-size:11px;color:var(--text-soft);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:1px 7px}.pg-rows{display:flex;flex-direction:column}.pg-empty{color:var(--text-mute);padding:12px;margin:0;font-size:13px}.kw-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--bg-sunk);flex-wrap:wrap}.kw-row:last-child{border-bottom:none}.kw-row.is-selected{background:var(--accent-soft)}.select-box{width:16px;height:16px;flex:none}.kw-text{border:none;background:transparent;color:var(--text);font-weight:600;text-align:left;padding:4px 6px;border-radius:5px;flex:1 1 140px;min-width:120px}.kw-text:hover{background:var(--accent-soft);color:var(--accent)}.kw-edit{flex:1 1 140px;padding:5px 7px;border:1px solid var(--accent);border-radius:5px}.kw-statuses{display:flex;flex-wrap:wrap;gap:4px 12px}.status-check{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-soft);white-space:nowrap}.status-check input{width:15px;height:15px}.kw-actions{display:flex;gap:2px;margin-left:auto}.pg-add{display:flex;gap:6px;padding:8px 12px}.pg-add input{flex:1;padding:6px 8px;border:1px solid var(--border-strong);border-radius:6px}.pg-add-btn{border:none;background:transparent;color:var(--accent);padding:9px 12px;text-align:left;width:100%;font-weight:600}.pg-add-btn:hover{background:var(--bg-soft)}.empty-state{text-align:center;color:var(--text-soft);padding:40px 16px}.hint{color:var(--text-mute);font-size:12.5px}.hint-error{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a2866;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}.modal{background:var(--bg);border-radius:10px;border:5px solid var(--accent);box-shadow:var(--shadow);width:100%;display:flex;flex-direction:column}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--accent);color:#fff}.modal-head h2{font-size:15px;margin:0;color:#fff}.modal-head .icon-btn{color:#fff}.modal-head .icon-btn:hover{background:#ffffff2e}.modal-body{padding:16px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.confirm-message{line-height:1.6}.field-label{display:block;font-size:12px;color:var(--text-soft);margin:10px 0 4px}.field-input{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px}.settings-plan-name{color:#000;font-weight:800}.modal-backdrop-contained{align-items:center;padding:16px;overflow:hidden;overscroll-behavior:contain}.modal-backdrop-contained .modal{height:min(740px,calc(100dvh - 32px));min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:16px}.modal-backdrop-contained .modal-head{flex:none;padding:16px 22px}.modal-backdrop-contained .modal-head h2{font-size:19px}.modal-backdrop-contained .modal-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:0}.modal-backdrop-contained .settings-tabs{flex:none;margin:0;padding:14px 22px;border-bottom:1px solid var(--border);gap:6px}.modal-backdrop-contained .settings-tabs button{padding:8px 14px;border-radius:8px}.modal-backdrop-contained .settings-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px}.generator-steps{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 22px 9px;flex:none;border-bottom:1px solid var(--border);background:var(--bg-soft)}.modal-backdrop-contained .generator-steps+.settings-panel{padding-top:11px}.generator-step-panel>.gs-block>.hint:first-child{margin-top:.5em}.generator-step{display:flex;align-items:center;gap:12px;padding:14px;text-align:left;background:var(--bg);color:var(--text-soft);border:2px solid var(--border);border-radius:12px;min-width:0}.generator-step.is-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.generator-step:hover{border-color:var(--accent)}.generator-step-number{display:grid;place-items:center;width:34px;height:34px;flex:none;background:var(--bg-sunk);border-radius:10px;font-size:17px;font-weight:800}.generator-step.is-active .generator-step-number{background:var(--accent);color:#fff}.generator-step strong{display:block;font-size:15px}.generator-step small{display:block;margin-top:4px;font-size:11px}.generator-step-panel .gs-block>h4,.storage-settings .gs-block>h4{font-size:19px;color:var(--text);font-weight:700;letter-spacing:0}.generator-step-panel .hint{line-height:1.65}.generator-step-panel .image-styles{border-bottom:0;padding-bottom:0}@media (max-width: 640px){.modal-backdrop-contained{padding:10px}.modal-backdrop-contained .modal{height:min(740px,calc(100dvh - 20px))}.modal-backdrop-contained .modal-head,.modal-backdrop-contained .settings-tabs{padding:12px 14px}.modal-backdrop-contained .settings-panel{padding:16px 14px}.generator-steps{padding:12px 14px 6px;gap:8px}.modal-backdrop-contained .generator-steps+.settings-panel{padding-top:8px}.generator-step{padding:10px 8px;gap:8px}.generator-step-number{width:26px;height:30px;font-size:15px}.generator-step strong{font-size:14px}.generator-step small{font-size:10px}}.settings-tabs{display:flex;gap:4px;margin-bottom:14px}.settings-tabs button{border:1px solid var(--border);background:var(--bg);padding:6px 12px;border-radius:6px;color:var(--text-soft)}.settings-tabs button.is-active{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent);font-weight:600}.stage-list{list-style:none;margin:0 0 12px;padding:0;border:1px solid var(--border);border-radius:6px}.stage-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--bg-sunk)}.stage-row:last-child{border-bottom:none}.stage-check{display:inline-flex;align-items:center}.stage-check input{width:16px;height:16px}.stage-row.is-hidden .stage-name{color:var(--text-mute);text-decoration:line-through}.stage-name{flex:1;font-weight:600;display:flex;align-items:center;gap:6px}.stage-actions{display:flex;gap:3px;align-items:center;flex-wrap:wrap}.badge{font-size:10.5px;font-weight:600;background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:1px 6px}.badge-muted{background:var(--bg-sunk);color:var(--text-mute)}.gen-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}.gen-row{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:6px;flex-wrap:wrap}.gen-default{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-soft)}.gen-fields{flex:1 1 220px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:6px}.gen-fields>*{min-width:0}.gen-row-actions{display:flex;gap:4px}.gen-add{border:1px dashed var(--border-strong);border-radius:6px;padding:12px}.gen-add-title{font-weight:600;flex:none}.gen-add-header{display:flex;align-items:baseline;gap:10px}.gen-add-header .hint{margin:0;min-width:0}.gen-add-fields{display:grid;grid-template-columns:auto minmax(0,1fr) clamp(60px,12vw,80px);align-items:center;gap:8px 12px;margin-top:12px}.gen-add-fields .field-label{margin:0}.gen-add-fields .field-input{min-width:0}.gen-add-submit{grid-column:3;grid-row:1 / 3;align-self:stretch}.excel-settings{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.import-stats{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.import-stats li{background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.import-stats li.warn{background:#fff6e8;border-color:#f0dcb4}.import-stats b{font-size:16px}.dup-toggle{display:block;margin-top:4px;font-size:12px;color:var(--text-soft)}.import-errors{margin-top:8px;font-size:12.5px}.import-errors ul{margin:6px 0 0;padding-left:18px;color:var(--text-soft)}.import-file{font-size:12px;color:var(--text-mute)}.error-text{color:var(--danger)}.app-footer{margin-top:32px;padding:14px 16px;border-radius:var(--radius);background:var(--accent);color:#fff;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;text-align:center;font-size:12px}.linkish{border:none;background:none;padding:0;color:var(--accent);font:inherit;text-decoration:underline}.app-footer .linkish{color:#fff}.data-notice{margin:0;padding-left:18px;line-height:1.7;font-size:13px}.data-notice code{background:var(--bg-sunk);padding:1px 5px;border-radius:4px;font-size:12px}.help-body{font-size:13px;line-height:1.6}.help-steps{margin:0;padding:0;list-style:none;counter-reset:help-step}.help-steps li{position:relative;margin-bottom:10px;padding:14px 14px 14px 48px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft);counter-increment:help-step}.help-steps li:before{content:counter(help-step);position:absolute;left:12px;top:14px;width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-weight:700}.help-gpts ul{margin:0;padding:0;list-style:none}.help-gpts li{margin-bottom:10px;padding:14px;border:1px solid var(--border);border-radius:10px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:#1f2430;color:#fff;padding:10px 18px;border-radius:8px;box-shadow:var(--shadow);z-index:100;max-width:90vw;text-align:center}.toast-error{background:var(--danger)}.view-toggle{display:flex;gap:4px;margin-top:12px}.vt-btn{border:1px solid var(--coral);background:var(--coral-soft);color:var(--coral);font-weight:600;padding:6px 14px;border-radius:6px}.vt-btn.is-active{background:var(--coral);border-color:var(--coral);color:#fff}.vt-btn:disabled{opacity:.45;cursor:not-allowed}.calendar{margin-top:12px}.cal-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.cal-title{font-size:15px;min-width:150px;text-align:center}.cal-head .icon-btn{font-size:18px;padding:2px 10px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cal-wd{background:var(--bg-soft);color:var(--text-mute);font-size:11px;letter-spacing:.04em;text-align:center;padding:6px 0}.cal-cell{background:var(--bg);min-height:104px;padding:4px 5px 6px;display:flex;flex-direction:column;gap:2px;min-width:0}.cal-cell-out{background:var(--bg-soft)}.cal-cell-out .cal-daynum{color:var(--text-mute);opacity:.6}.cal-daynum{align-self:flex-start;border:none;background:transparent;font-size:12px;color:var(--text-soft);padding:1px 5px;border-radius:999px;line-height:1.5}.cal-daynum:hover{background:var(--bg-sunk)}.cal-cell-today .cal-daynum{background:var(--coral);color:#fff;font-weight:700}.cal-cell-today{box-shadow:inset 0 0 0 2px var(--coral-soft)}.cal-cell-body{display:flex;flex-direction:column;gap:1px;min-width:0}.cal-kw{display:flex;align-items:center;gap:4px;border:none;background:transparent;padding:1px 4px;border-radius:4px;font-size:12px;color:var(--text);text-align:left;width:100%;min-width:0}.cal-kw:hover{background:var(--accent-soft);color:var(--accent)}.cal-kw-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.cal-mark{flex:none;font-size:15px;font-weight:900;line-height:1;-webkit-text-stroke:1.4px currentColor}.cal-mark-done{color:#1565ff}.cal-mark-missing{color:#e5252b}.cal-more{align-self:flex-start;border:none;background:transparent;color:var(--accent);font-size:11px;padding:1px 4px;font-weight:600}.cal-more:hover{text-decoration:underline}.cal-day-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:2px}.cal-day-list .cal-kw{font-size:13px;padding:4px 6px}.cal-agenda{display:flex;flex-direction:column;gap:12px}.cal-agenda-day h4{margin:0 0 4px;font-size:13px;color:var(--text-soft);border-bottom:1px solid var(--border);padding-bottom:3px}.cal-agenda-day h4.is-today{color:var(--coral);border-color:var(--coral-soft)}.cal-agenda-day .cal-kw{font-size:13px;padding:4px 6px}@media (max-width: 900px){.cal-cell{min-height:84px}}.style-controls{min-width:0;margin:0 0 10px;padding:0;border:0}.style-editor{margin-bottom:12px}.style-field-row{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:start;gap:12px;margin-top:10px}.style-controls>.style-field-row:first-child{margin-top:0}.style-field-row .field-label{margin:0;padding-top:10px}.style-field-row .field-input{min-width:0}.style-editor textarea{resize:vertical;min-height:100px;line-height:1.6}.image-styles{border-bottom:1px solid var(--border);padding-bottom:12px}.gs-block{margin-bottom:18px}.gs-block h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft)}.gs-radio{display:flex;gap:8px;align-items:flex-start;padding:6px 0;font-size:13px}.gs-radio input{margin-top:2px}.gs-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.gs-radio.is-disabled{opacity:.55}.storage-actions{display:grid;gap:10px;margin-top:12px}.storage-action{display:grid;grid-template-columns:166px minmax(0,1fr);align-items:center;gap:16px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft)}.storage-action .btn{font-size:13px;min-height:38px}.storage-action p{margin:0;color:var(--text-soft);font-size:12.5px;line-height:1.65;word-break:keep-all;overflow-wrap:anywhere}@media (max-width: 640px){.storage-action{grid-template-columns:minmax(0,1fr);gap:10px}.storage-action .btn{justify-self:start}}.gs-test-result{margin-top:8px;font-size:12.5px;color:var(--text-soft)}.gen-fallback-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.gen-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 0;color:var(--text-soft)}.spinner{width:34px;height:34px;border:3px solid var(--bg-sunk);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gen-result img{display:block;width:100%;border-radius:8px;border:1px solid var(--border)}.gen-error-box{padding:8px 0}@media (max-width: 640px){.kw-row{align-items:flex-start}.kw-text{flex-basis:100%}.kw-statuses{flex-basis:100%;gap:6px 14px}.kw-actions{position:absolute;right:12px}.kw-row{position:relative;padding-right:60px}.plan-actions{flex-basis:100%;justify-content:flex-start;margin-left:0}.pg-progress{display:none}}@media (max-width: 900px),(pointer: coarse){.app input:not([type=checkbox]):not([type=radio]),.app select,.app textarea{font-size:16px}}
