:root{color:#17303b;font-synthesis:none;background:#eef5f3;font-family:Noto Sans Thai,Leelawadee UI,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.screen-center,.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-shell{background:linear-gradient(145deg,#dbf2ec,#eef5f3 54%,#dbeae8)}.login-card{background:#fff;border-radius:20px;width:min(430px,100%);padding:34px;box-shadow:0 24px 70px #12433b24}.login-mark{color:#fff;background:#087f68;border-radius:14px;place-items:center;width:52px;height:52px;font-weight:800;display:grid}.login-card h1{margin:18px 0 8px;font-size:23px}.login-card p{color:#667b80;margin:0 0 22px;line-height:1.55}.login-card label{margin:13px 0;font-size:13px;font-weight:700;display:block}.login-card input{background:#fff;border:1px solid #c9d8d5;border-radius:10px;width:100%;margin-top:6px;padding:11px 12px}.primary-button{color:#fff;background:#087f68;border:0;border-radius:10px;width:100%;margin-top:8px;padding:11px;font-weight:800}.error-message,.global-error{color:#a52f2f!important}.app-shell{min-height:100vh}.topbar{color:#fff;background:#087f68;justify-content:space-between;align-items:center;gap:18px;height:68px;padding:0 22px;display:flex}.brand,.user-area{align-items:center;gap:11px;display:flex}.brand>span{background:#ffffff2e;border-radius:10px;place-items:center;width:39px;height:39px;font-weight:800;display:grid}.brand strong,.brand small,.user-area strong,.user-area small{display:block}.brand small,.user-area small{opacity:.8;margin-top:2px;font-size:11px}.user-area{text-align:right;font-size:12px}.user-area button{color:#fff;background:0 0;border:1px solid #ffffff73;border-radius:8px;padding:7px 9px}.summary-strip{background:#d1dedb;border-bottom:1px solid #d1dedb;grid-template-columns:repeat(4,minmax(110px,1fr)) minmax(180px,1.5fr);gap:1px;display:grid}.summary-strip>div{background:#fff;padding:12px 18px}.summary-strip span,.summary-strip strong{display:block}.summary-strip span{color:#708287;font-size:11px}.summary-strip strong{margin-top:3px;font-size:19px}.summary-progress i{background:#e4ecea;border-radius:99px;height:5px;margin-top:7px;display:block;overflow:hidden}.summary-progress b{background:#16a383;height:100%;display:block}.filterbar{background:#f8fbfa;border-bottom:1px solid #d5e1de;grid-template-columns:minmax(230px,1fr) 190px 170px auto;align-items:center;gap:9px;padding:12px 18px;display:grid}.filterbar input,.filterbar select{color:#29434a;background:#fff;border:1px solid #cbd8d5;border-radius:9px;min-width:0;padding:9px 10px}.filterbar>span{color:#718388;text-align:right;font-size:12px}.global-error{background:#fff0f0;border-radius:8px;margin:10px 18px 0;padding:9px 12px;font-size:12px}.toast{z-index:30;color:#fff;background:#173c37;border-radius:10px;padding:12px 15px;font-size:12px;position:fixed;top:80px;right:20px;box-shadow:0 12px 35px #072c263d}.workspace{grid-template-columns:330px minmax(0,1fr);height:calc(100vh - 153px);display:grid;overflow:hidden}.workflow-list{background:#f7faf9;border-right:1px solid #d2dfdc;overflow-y:auto}.workflow-list>button{color:#264149;text-align:left;background:0 0;border:0;border-bottom:1px solid #e0e9e7;width:100%;padding:14px 104px 14px 18px;display:block;position:relative}.workflow-list>button:hover{background:#edf6f3}.workflow-list>button.active{background:#dcf2eb;box-shadow:inset 4px 0 #087f68}.workflow-code{color:#087f68;font-size:11px;font-weight:900}.workflow-list strong,.workflow-list small{display:block}.workflow-list strong{margin:3px 0;font-size:13px;line-height:1.35}.workflow-list small{color:#74868b}.workflow-list em,.detail-head>em{white-space:nowrap;border-radius:999px;padding:5px 7px;font-size:10px;font-style:normal;font-weight:800}.workflow-list em{position:absolute;top:16px;right:12px}[data-status=NOT_STARTED]{color:#607178;background:#e6edeb}[data-status=IN_PROGRESS]{color:#8a5b00;background:#fff0c7}[data-status=READY_FOR_TEST],[data-status=TESTING]{color:#145d97;background:#e0f0ff}[data-status=NEEDS_FIX]{color:#a12d2d;background:#ffe5e5}[data-status=DONE]{color:#08705d;background:#dff4ed}[data-status=OUT_OF_SCOPE]{color:#6e6385;background:#eee9f8}.detail-panel{background:#eef5f3;min-width:0;overflow-y:auto}.detail-head{justify-content:space-between;align-items:flex-start;gap:15px;padding:20px 22px 16px;display:flex}.detail-head span{color:#087f68;font-size:11px;font-weight:900}.detail-head h2{margin:4px 0;font-size:21px}.detail-head p{color:#61757a;max-width:780px;margin:0;font-size:13px;line-height:1.55}.detail-head>em{margin-top:4px}.detail-tabs{background:#dce7e4;border-radius:11px;grid-template-columns:repeat(4,1fr);gap:4px;margin:0 22px;padding:4px;display:grid}.detail-tabs button{color:#53686e;background:0 0;border:0;border-radius:8px;padding:9px;font-size:12px;font-weight:800}.detail-tabs button.active{color:#17303b;background:#fff;box-shadow:0 1px 4px #1036301f}.tab-content{background:#fff;border:1px solid #d1dfdc;border-radius:13px;margin:14px 22px 24px;padding:17px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.overview-grid h3,.lane-card h3{margin:0 0 8px;font-size:14px}.overview-grid p,.overview-grid li{color:#52676d;font-size:12px;line-height:1.6}.overview-grid ul{margin:0;padding-left:20px}.ref-chip{color:#087f68;background:#def2ec;border-radius:999px;margin:0 5px 5px 0;padding:5px 8px;font-size:11px;font-weight:800;display:inline-block}.source-path{overflow-wrap:anywhere;font-family:ui-monospace,monospace;margin:4px 0!important}.locked-note,.simple-rule{background:#eff7f5;border-left:3px solid #087f68;grid-column:1/-1;padding:10px 12px;color:#496168!important;margin:0!important}.lane-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.lane-card{min-width:0}.lane-head{border-bottom:1px solid #e2eae8;justify-content:space-between;align-items:center;display:flex}.lane-head span{color:#087f68;font-size:12px;font-weight:900}.check-row{color:#334e55;border-bottom:1px solid #edf2f0;align-items:flex-start;gap:10px;padding:11px 0;font-size:13px;line-height:1.45;display:flex}.check-row input{accent-color:#087f68;margin-top:3px}.check-row small{color:#7b8c90;margin-top:3px;font-size:10px;display:block}.simple-rule{margin-top:4px!important}.test-gate{color:#805c13;background:#fff4d8;border-radius:8px;margin:0 0 12px;padding:9px 11px;font-size:12px}.criterion-row{border-bottom:1px solid #e5ecea;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.criterion-row>span{color:#087f68;font-size:11px;font-weight:900}.criterion-row>strong{font-size:13px;font-weight:600}.criterion-row button{color:#425a60;background:#fff;border:1px solid #c6d5d1;border-radius:7px;margin-left:5px;padding:6px 9px;font-size:11px}.criterion-row button.pass{color:#08705d;background:#e4f6f0;border-color:#6fbea9;font-weight:800}.criterion-row button.fail{color:#a12d2d;background:#fff0f0;border-color:#db9999;font-weight:800}.activity-list>div{border-bottom:1px solid #e5ecea;justify-content:space-between;gap:12px;padding:11px 0;font-size:12px;display:flex}.activity-list span{color:#728489}@media (width<=900px){.summary-strip{grid-template-columns:repeat(3,1fr)}.summary-progress{grid-column:span 2}.filterbar{grid-template-columns:1fr 1fr}.filterbar>span{text-align:left}.workspace{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 220px);overflow:visible}.workflow-list{border-bottom:1px solid #d2dfdc;border-right:0;max-height:300px}.detail-panel{overflow:visible}}@media (width<=620px){.topbar{align-items:flex-start;height:auto;padding:12px 14px}.brand strong{font-size:13px}.user-area>div{display:none}.summary-strip{grid-template-columns:repeat(2,1fr)}.summary-progress{grid-column:1/-1}.filterbar{grid-template-columns:1fr}.detail-head{padding:16px 14px 12px;display:block}.detail-head>em{margin-top:9px;display:inline-block}.detail-tabs{margin:0 14px}.detail-tabs button{padding:8px 4px}.tab-content{margin:12px 14px 20px;padding:14px}.overview-grid,.lane-grid{grid-template-columns:1fr}.criterion-row{grid-template-columns:76px minmax(0,1fr)}.criterion-row>div{grid-column:2}.activity-list>div{display:block}.activity-list span{margin-top:3px;display:block}}
