@charset "UTF-8";
:root{font-family:Inter,"Segoe UI","Malgun Gothic",sans-serif;color:#203a34;background:#f5f5ef;font-synthesis:none;--green:#173e35;--muted:#72817b;--line:#dce2d9;--paper:#fff;--accent:#c7e7ce;--amber:#966027;--red:#a64f45}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit}.loading{padding:12vh 10vw;font-size:24px}.shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#e6eee7;padding:34px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;margin:0 12px 43px}.brand img{width:36px;height:36px}.brand strong{font-size:23px;letter-spacing:1.5px}.brand small{display:block;color:#a8c4b5;letter-spacing:3px;font-size:10px;margin-top:3px}.navlabel{color:#9eb8aa;font-size:11px;letter-spacing:1.7px;padding:0 14px;margin-bottom:12px}.nav{display:grid;gap:7px}.nav button{text-align:left;border:0;color:#c8d8ce;background:transparent;padding:14px;border-radius:7px;display:flex;gap:13px;font-size:14px}.nav button.active{background:#315a48;color:#fff}.nav button:hover{background:#284f42}.nav .symbol{font-size:17px;width:19px;text-align:center}.sidebottom{margin-top:auto;padding:20px 12px 0;border-top:1px solid #416254;font-size:12px;color:#a8c4b5;line-height:1.7}.sidebottom strong{font-weight:500;color:#e3eadf}.main{min-width:0}.topbar{height:80px;background:#fafbf6;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:16px}.workspace{display:flex;align-items:center;gap:12px}.workspace select{background:transparent;border:none;color:var(--green);font-weight:600;max-width:340px}.topright{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:12px}.avatar{width:32px;height:32px;border-radius:50%;background:#e6ecdf;display:grid;place-items:center;color:var(--green);font-weight:700}.content{max-width:1480px;margin:auto;padding:38px 40px 64px}.eyebrow{font-size:11px;letter-spacing:2px;color:#718879;font-weight:600;margin-bottom:11px}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:29px}h1{font-size:30px;letter-spacing:-1px;font-weight:650;margin:0 0 10px}h2{font-size:18px;margin:0 0 7px;font-weight:650}h3{font-size:15px;margin:0 0 9px}p{line-height:1.75}.sub{font-size:13px;color:var(--muted);margin:0;line-height:1.7}.btn{border:1px solid #d5ded4;border-radius:6px;padding:10px 14px;background:#fff;color:#244538;font-size:13px;line-height:1.4;white-space:nowrap}.btn.primary{background:var(--green);color:#f4f8ef;border-color:var(--green)}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.small{font-size:12px;padding:7px 10px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.badge{display:inline-flex;border-radius:4px;padding:4px 7px;background:#eef1e9;color:#647667;font-size:11px;white-space:nowrap}.badge.green{background:#e1f0e1;color:#367147}.badge.amber{background:#fbedd8;color:#996221}.badge.red{background:#f8e5e0;color:#a2564d}.badge.blue{background:#e7eff6;color:#4e7194}.badge.dark{background:#3a5b4c;color:#e3efdd}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}.metric{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:22px 23px}.metric label{font-size:12px;color:#6f8076;display:block}.metric .number{font-size:34px;letter-spacing:-1px;line-height:1.5;font-weight:600}.metric .number small{font-size:13px;font-weight:400;margin-left:7px;letter-spacing:0}.metric .foot{font-size:11px;color:#859087;border-top:1px solid #edf0e8;padding-top:10px;margin-top:9px}.twocol{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(285px,1fr);gap:23px}.panel{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:23px}.panelhead{padding:23px 24px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0e8;gap:14px}.panelbody{padding:23px 24px}.item{padding:19px 24px;border-bottom:1px solid #edf0e8;display:flex;gap:15px;align-items:center}.item:last-child{border-bottom:0}.itembody{flex:1;min-width:0}.itemtitle{font-size:14px;font-weight:600;margin:0 0 7px}.itemmeta{font-size:12px;color:#7a897f;line-height:1.6}.dot{width:8px;height:8px;border-radius:50%;background:#8bae8f;flex-shrink:0}.dot.amber{background:#dca654}.dot.red{background:#cc8072}.iconbox{width:36px;height:36px;flex-shrink:0;background:#edf2e6;border-radius:7px;display:grid;place-items:center;color:#758b66}.linkbtn{padding:0;border:0;text-align:left;color:inherit;background:transparent;cursor:pointer}.linkbtn:hover{text-decoration:underline}.empty{padding:36px 24px;color:#77877b;text-align:center;font-size:13px;line-height:1.8}.empty strong{display:block;font-size:16px;color:#496453;margin-bottom:7px}.notice{padding:14px 18px;border:1px solid #dee5d7;border-radius:7px;background:#edf3e7;color:#637455;font-size:12px;line-height:1.8;margin-bottom:23px}.notice.warn{background:#fff8ea;border-color:#efdfbd;color:#8e7149}.sectionlabel{font-size:11px;letter-spacing:1.5px;color:#899982;margin:0 0 12px}.gridcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.workcard{border:1px solid var(--line);background:#fff;border-radius:8px;padding:22px;display:flex;flex-direction:column;gap:12px}.workcard .desc{font-size:12px;color:#77877a;line-height:1.7;flex:1;margin:0}.workcard header{display:flex;justify-content:space-between;gap:8px}.workcard code{font-family:inherit;font-size:11px;color:#75816d}.workcard h3{line-height:1.6;margin:0}.workcard footer{border-top:1px solid #edf0e8;padding-top:14px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7d8979}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}.filters input,.filters select{border:1px solid var(--line);background:#fff;padding:10px 12px;border-radius:6px;font-size:13px;color:#425d4d}.filters input{width:270px}.statuslist{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.ruleline{padding:18px 24px;border-bottom:1px solid #edf0e8;font-size:13px;line-height:1.7}.ruleline:last-child{border:0}.kv{display:grid;grid-template-columns:100px 1fr;gap:15px;font-size:13px;line-height:1.7;margin:0 0 14px}.kv dt{color:#7d8b7e}.kv dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.timeline{border-left:1px solid #ccd9c9;margin-left:7px;padding-left:24px}.timeline .event{position:relative;margin:0 0 25px;font-size:12px;line-height:1.8;color:#738271}.timeline .event:before{content:"";width:7px;height:7px;background:#8ca980;border:3px solid white;position:absolute;left:-31px;top:4px;border-radius:50%;box-sizing:content-box}.timeline strong{display:block;color:#365842;font-size:13px}.login{min-height:100vh;display:grid;place-items:center;background:#e9eee2;padding:25px}.loginbox{width:min(450px,100%);padding:45px;border:1px solid #d3dece;background:#fff;border-radius:13px}.loginbox img{width:50px;height:50px;margin-bottom:30px}.loginbox h1{font-size:28px}.loginbox .btn{margin-top:20px;width:100%}.loginbox .sub{margin-top:15px}.mini{font-size:11px;color:#8b9585}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#87917f;background:#fafbf7;font-weight:500;padding:12px 20px;white-space:nowrap}td{padding:17px 20px;border-top:1px solid #edf0e8;vertical-align:top;line-height:1.6}td strong{font-size:13px}dialog{border:1px solid var(--line);border-radius:11px;width:min(780px,calc(100% - 28px));max-height:90vh;padding:0;color:#264333;box-shadow:0 24px 100px #0c211a38}dialog::backdrop{background:#0c211a66;backdrop-filter:blur(2px)}.dialoghead{padding:24px 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.dialogbody{padding:25px 28px}.dialogfoot{border-top:1px solid var(--line);padding:18px 28px;display:flex;justify-content:flex-end;gap:9px;background:#fafbf7}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#6b7e6b}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid #d6dfd0;border-radius:5px;padding:10px 12px;color:#294c38;background:#fff;min-width:0;width:100%;font-size:13px}.field textarea{min-height:95px;resize:vertical;line-height:1.7}.field small{font-size:11px;color:#8b9585}.error{padding:13px 16px;background:#fff0ec;color:#a45a4c;font-size:13px;line-height:1.7;border-radius:6px;white-space:pre-wrap;margin-bottom:16px}.checkrow{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:13px;line-height:1.6}.checkrow input{width:17px;height:17px;accent-color:var(--green)}.pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8;color:#50694e;background:#f6f8f1;border:1px solid #e4eadb;border-radius:6px;padding:15px}.tabs{display:flex;gap:4px;padding:5px;border:1px solid var(--line);background:#eff3e8;border-radius:7px;width:max-content;margin-bottom:23px}.tabs button{border:0;background:transparent;padding:8px 15px;border-radius:4px;color:#758570;font-size:12px}.tabs button.active{background:white;color:#264e37;box-shadow:0 1px 5px #1c3b2410}.dangertext{color:var(--red)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173e35;color:white;padding:13px 23px;border-radius:7px;font-size:13px;box-shadow:0 5px 30px #0002;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100}#toast.show{opacity:1}.stack{display:grid;gap:14px}.mt{margin-top:22px}.alignright{text-align:right}.muted{color:var(--muted)}.count{color:#9dada0;font-weight:400;font-size:12px;margin-left:7px}.toolbarline{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
@media(min-width:1650px){.content{padding-top:48px}.gridcards{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.shell{grid-template-columns:205px 1fr}.sidebar{padding:28px 14px}.content{padding:30px 25px}.topbar{padding:0 25px}.twocol{grid-template-columns:1fr}.gridcards{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{gap:10px}.metric{padding:18px 14px}.metric .number{font-size:29px}}@media(max-width:720px){.shell{display:block}.sidebar{height:auto;position:relative;padding:18px}.brand{margin:0 0 16px}.brand strong{font-size:18px}.nav{display:flex;overflow:auto;gap:4px}.nav button{white-space:nowrap;padding:9px;font-size:12px}.navlabel,.sidebottom,.nav .symbol{display:none}.topbar{height:65px;padding:0 18px}.topright .date{display:none}.workspace select{max-width:240px;font-size:12px}.content{padding:24px 17px}.pagehead{align-items:flex-start;flex-direction:column;gap:13px}h1{font-size:26px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:17px}.gridcards{grid-template-columns:1fr}.panelhead,.panelbody{padding:19px}.item{padding:17px 19px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.dialogbody,.dialoghead{padding:20px}.kv{grid-template-columns:80px 1fr}.filters input{width:100%}.item .actions{max-width:95px}.topright{gap:8px}.loginbox{padding:30px}.tabs{max-width:100%;overflow:auto}}
@media(max-width:720px){.topbar{height:auto;min-height:100px;flex-wrap:wrap;padding:12px 18px;gap:10px}.workspace{width:100%;min-width:0}.workspace select{flex:1;min-width:0;max-width:none;width:150px}.topright{width:100%;justify-content:flex-end}.nav{max-width:100%}.dialogfoot{flex-wrap:wrap}.itemtitle{overflow-wrap:anywhere}}
.stages{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;margin-bottom:24px}.stage{border:1px solid var(--line);border-radius:7px;background:var(--paper);padding:10px 9px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;font:inherit;color:inherit;min-width:0}.stage span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage strong{font-size:22px;font-weight:600;line-height:1.3}.stage small{font-size:10px;color:#859087}.stage.hot{border-color:#efdfbd;background:#fff8ea}.stage.hot strong{color:var(--amber)}.stage:focus-visible{outline:2px solid var(--green);outline-offset:2px}.notice code,.sub code{font-size:11px;background:#e6ece0;padding:1px 4px;border-radius:3px;word-break:break-all}.item .toolbarline{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
@media(max-width:1150px){.stages{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.stages{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fielderrors{margin:6px 0 0;padding-left:18px}.fielderrors li{margin:2px 0;overflow-wrap:anywhere}.fielderrors code{font-size:11px;background:#fbe9e4;padding:1px 4px;border-radius:3px}
