:root{color:#1c2526;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #1c2526;--muted: #63706e;--line: #d8dfdc;--canvas: #f4f6f3;--surface: #ffffff;--accent: #0d766e;--accent-dark: #075b55;--accent-soft: #e4f2ef;--blue: #245b88;--blue-soft: #e8f0f7;--amber: #a65e08;--amber-soft: #fff1d8;--danger: #b33c35;--danger-soft: #fbe9e7;--success: #2d704f;--shadow: 0 6px 20px rgb(28 37 38 / 7%)}*{box-sizing:border-box;letter-spacing:0}html{min-width:320px;background:var(--canvas)}body{min-width:320px;min-height:100vh;margin:0;background:var(--canvas)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgb(13 118 110 / 25%);outline-offset:2px}.app-shell{display:grid;height:100vh;height:100dvh;grid-template-areas:"header" "banner" "content" "nav";grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.app-bar{grid-area:header;position:relative;z-index:20;top:0;display:flex;min-height:58px;align-items:center;justify-content:space-between;padding:8px max(16px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand,.app-tools,.brand-mark,.page-heading,.page-heading--back,.proxy-banner,.button,.icon-button,.task-card__meta span,.task-card__footer,.status-badge,.action-strip,.action-strip a,.action-strip button,.record-row__head,.proxy-summary,.state-message{display:flex;align-items:center}.brand{gap:9px;color:var(--ink)}.brand-mark,.login-brand{display:grid;place-items:center;color:#fff;background:var(--accent);border-radius:6px}.brand-mark{width:34px;height:34px}.brand strong{font-size:1rem}.app-tools{gap:4px}.icon-button{width:42px;height:42px;flex:0 0 42px;justify-content:center;padding:0;border:0;border-radius:6px;color:var(--ink);background:transparent;cursor:pointer}.icon-button:hover{background:#edf1ef}.icon-button--accent{color:#fff;background:var(--accent)}.icon-button--accent:hover{background:var(--accent-dark)}.proxy-banner{grid-area:banner;gap:10px;padding:10px max(16px,calc((100vw - 1040px)/2));border-bottom:1px solid transparent}.proxy-banner>div{display:grid;min-width:0;gap:1px}.proxy-banner strong{font-size:.88rem}.proxy-banner span{font-size:.78rem;line-height:1.4}.proxy-banner--warning{color:#704008;border-color:#efd092;background:var(--amber-soft)}.proxy-banner--blocked{color:#7d2b27;border-color:#eac1bd;background:var(--danger-soft)}.shell-content{grid-area:content;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}.bottom-nav{grid-area:nav;position:relative;z-index:30;display:grid;width:100%;min-height:66px;justify-self:center;grid-template-columns:repeat(2,minmax(0,1fr));padding:5px max(12px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff7;box-shadow:0 -5px 18px #1c25260f}.bottom-nav a{display:grid;min-width:0;place-items:center;align-content:center;gap:2px;border-radius:6px;color:var(--muted);font-size:.73rem}.bottom-nav a.active{color:var(--accent);background:var(--accent-soft)}.page{width:min(100%,1040px);min-height:55vh;margin:0 auto;padding:22px 16px 32px}.page--form{width:min(100%,760px)}.page-heading{min-height:48px;justify-content:space-between;gap:12px;margin-bottom:20px}.page-heading--back{justify-content:flex-start}.heading-grow{min-width:0;flex:1}.page-heading h1,.login-panel h1{margin:2px 0 0;color:var(--ink);font-size:1.45rem;line-height:1.25;overflow-wrap:anywhere}.page-heading--back h1{font-size:1.25rem}.eyebrow{color:var(--muted);font-size:.74rem;font-weight:700;text-transform:uppercase}.task-list,.record-list,.target-list,.target-summary-list{display:grid;gap:10px}.task-card{overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.task-card>a{display:block;padding:15px}.task-card>a:hover{background:#fbfcfb}.task-card__topline{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.72rem}.task-card h2{margin:13px 0 9px;font-size:1.04rem;overflow-wrap:anywhere}.task-card__meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:.8rem}.task-card__meta span{gap:5px}.task-card__footer{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;gap:12px;margin:14px -15px -15px;padding:11px 15px;border-top:1px solid #e8ecea;background:#fafbfa}.task-card__footer div{display:grid;min-width:0;gap:2px}.task-card__footer span{color:var(--muted);font-size:.68rem}.task-card__footer strong{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.status-badge{width:fit-content;min-height:24px;justify-content:center;padding:3px 8px;border-radius:999px;color:var(--muted);background:#e9eeec;font-size:.7rem;font-weight:750;white-space:nowrap}.status-badge--active,.status-badge--available,.status-badge--ready,.status-badge--sent,.status-badge--decrease{color:#245f47;background:#e3f2e9}.status-badge--paused,.status-badge--skipped,.status-badge--archived{color:#5b6462;background:#e8eceb}.status-badge--config_error,.status-badge--failed,.status-badge--blocked{color:#8e302b;background:var(--danger-soft)}.status-badge--expired,.status-badge--unavailable,.status-badge--expiring,.status-badge--increase{color:#895009;background:var(--amber-soft)}.state-message,.empty-state{justify-content:center;gap:9px;min-height:150px;color:var(--muted);text-align:center}.state-message--error{color:var(--danger)}.empty-state{display:flex;flex-direction:column}.empty-state h2{margin:0;color:var(--ink);font-size:1rem}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button{min-height:44px;justify-content:center;gap:7px;padding:9px 15px;border:1px solid transparent;border-radius:6px;font-weight:700;cursor:pointer}.button:disabled,.action-strip button:disabled{opacity:.55;cursor:wait}.button--primary{color:#fff;border-color:var(--accent);background:var(--accent)}.button--primary:hover{background:var(--accent-dark)}.button--secondary{color:var(--ink);border-color:#cbd4d1;background:var(--surface)}.button--secondary:hover{border-color:#9facaa;background:#f9fbfa}.button--quiet{min-height:32px;justify-self:start;padding:4px 7px;color:var(--accent-dark);border-color:transparent;background:transparent;font-size:.76rem}.button--quiet:hover{background:var(--accent-soft)}.button--full{width:100%}.step-indicator{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));isolation:isolate;margin:0 0 22px;padding:0;list-style:none}.step-indicator li{position:relative;display:grid;place-items:center}.step-indicator li:not(:last-child):after{position:absolute;z-index:0;top:50%;left:50%;width:100%;height:2px;content:"";background:var(--line)}.step-indicator li.is-active:not(:last-child):after{background:var(--accent)}.step-indicator span{position:relative;z-index:1;display:grid;width:28px;height:28px;place-items:center;border:2px solid var(--line);border-radius:50%;color:var(--muted);background:var(--canvas);font-size:.75rem;font-weight:800}.step-indicator .is-active span{color:#fff;border-color:var(--accent);background:var(--accent)}.form-section,.detail-section,.filter-band{padding:0 0 22px;border-bottom:1px solid var(--line)}.task-filter-control{display:grid;min-width:0}.form-section h2,.detail-section h2,.records-heading h2{margin:0 0 16px;font-size:1rem}.field,.field-group{display:grid;min-width:0;gap:7px;margin:0 0 16px}.field>span,.field-group legend{color:#3a4645;font-size:.8rem;font-weight:700}.field input,.field select{width:100%;min-width:0;height:44px;padding:9px 11px;border:1px solid #bdc8c5;border-radius:5px;color:var(--ink);background:var(--surface)}.field input:hover,.field select:hover{border-color:#8e9c99}.field small{min-height:1em;color:var(--danger);font-size:.72rem}.field-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px}.field-group{padding:0;border:0}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #bdc8c5;border-radius:6px;background:var(--surface)}.segmented-control label{min-width:0;cursor:pointer}.segmented-control input{position:absolute;opacity:0}.segmented-control span{display:grid;min-height:42px;place-items:center;padding:7px;font-size:.8rem;font-weight:700}.segmented-control label+label span{border-left:1px solid var(--line)}.segmented-control input:checked+span{color:#fff;background:var(--accent)}.target-editor{position:relative;min-width:0;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.target-editor legend{padding:0 5px;font-size:.78rem;font-weight:800}.target-remove{position:absolute;top:3px;right:6px;color:var(--danger)}.readonly-target{display:grid;min-width:0;gap:2px;margin-bottom:15px}.readonly-target strong,.readonly-target span{overflow-wrap:anywhere}.readonly-target span{color:var(--muted);font-size:.8rem}.review-block{margin-top:8px;padding:15px;border-left:3px solid var(--blue);background:var(--blue-soft)}.review-block h3{margin:0 0 12px;font-size:1rem}.review-block dl,.run-progress dl,.record-row dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.review-block dl div,.run-progress dl div,.record-row dl div{display:grid;min-width:0;gap:2px}.review-block dt,.run-progress dt,.record-row dt{color:var(--muted);font-size:.69rem}.review-block dd,.run-progress dd,.record-row dd{margin:0;font-size:.8rem;font-weight:700;overflow-wrap:anywhere}.review-block ul{display:grid;gap:7px;margin:14px 0 0;padding:12px 0 0;border-top:1px solid rgb(36 91 136 / 20%);list-style:none}.review-block li{display:flex;min-width:0;justify-content:space-between;gap:10px;font-size:.76rem}.review-block li span{min-width:0;overflow-wrap:anywhere}.review-block li strong{flex:0 0 auto}.form-actions{display:flex;justify-content:space-between;gap:10px;padding-top:18px}.form-error,.record-error{color:var(--danger);font-size:.8rem}.form-success{color:var(--success);font-size:.8rem;font-weight:700}.run-progress{margin-bottom:16px;padding:15px;border:1px solid #c5d8d4;border-radius:6px;background:var(--accent-soft)}.run-progress h2{margin:2px 0 10px;font-size:1rem}.progress-track{width:100%;height:5px;overflow:hidden;margin-bottom:12px;border-radius:3px;background:#c2dad5}.progress-track span{display:block;width:38%;height:100%;background:var(--accent);animation:progress-pulse 1.7s ease-in-out infinite alternate}@keyframes progress-pulse{to{transform:translate(160%)}}.action-strip{overflow-x:auto;gap:6px;margin:0 -16px 22px;padding:0 16px 9px;scrollbar-width:none}.action-strip a,.action-strip button{min-height:38px;flex:0 0 auto;gap:6px;padding:7px 10px;border:1px solid #cbd4d1;border-radius:5px;color:var(--ink);background:var(--surface);font-size:.76rem;font-weight:700;cursor:pointer}.action-strip .danger-action{color:var(--danger);border-color:#e1bbb7}.detail-layout{display:grid;gap:24px}.detail-list{margin:0}.detail-list div{display:grid;grid-template-columns:minmax(90px,.38fr) minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #e4e9e7}.detail-list dt{color:var(--muted);font-size:.78rem}.detail-list dd{margin:0;text-align:right;font-size:.8rem;font-weight:650;overflow-wrap:anywhere}.target-summary-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.target-summary-list article>div{display:grid;min-width:0;gap:2px}.target-summary-list strong,.target-summary-list span{overflow-wrap:anywhere}.target-summary-list article>div span{color:var(--muted);font-size:.76rem}.filter-band{display:grid;gap:0 14px;margin-bottom:20px}.records-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.records-heading h2{margin:0;overflow-wrap:anywhere}.records-heading span{flex:0 0 auto;color:var(--muted);font-size:.74rem}.record-row{padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.record-row__head{justify-content:space-between;gap:10px}.record-row__head>div{display:grid;gap:2px;color:var(--muted);font-size:.69rem}.record-row h3{margin:11px 0 4px;font-size:.92rem;overflow-wrap:anywhere}.record-row h3 span{color:var(--muted);font-weight:500}.record-row__window{margin-bottom:12px;color:var(--muted);font-size:.75rem}.record-row dl{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px;background:#f6f8f7}.notification-result{margin:10px 0 0;color:var(--muted);font-size:.72rem}.notification-result--failed,.notification-result--unknown{color:var(--danger)}.load-more{width:100%;margin-top:14px}.proxy-summary{gap:12px;margin-bottom:24px;padding:14px 0 18px;border-bottom:1px solid var(--line);color:var(--accent)}.proxy-summary>div{display:grid;min-width:0;flex:1;gap:2px}.proxy-summary span{color:var(--muted);font-size:.73rem}.proxy-summary strong{color:var(--ink);font-size:.85rem;overflow-wrap:anywhere}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px 16px;background:#eef2ef}.login-panel{width:min(100%,390px);padding:28px 24px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:var(--shadow)}.login-brand{width:50px;height:50px;margin-bottom:18px}.login-panel h1{margin-bottom:25px;font-size:1.55rem}.app-boot{display:grid;min-height:100vh;place-items:center}@media(min-width:640px){.field-grid,.field-grid--target,.task-list{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-band{grid-template-columns:minmax(180px,1.2fr) minmax(280px,1.6fr) minmax(140px,.8fr) auto;align-items:end}.filter-band .field,.filter-band .field-grid{margin-bottom:0}.detail-layout{grid-template-columns:minmax(0,1fr) minmax(280px,.75fr)}.detail-section{border-bottom:0}.review-block dl,.run-progress dl{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:900px){.bottom-nav{width:min(100%,420px);border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0}.page{padding-top:30px}.task-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
