:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#1d2939;background:#f4f6f9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}button,input,textarea,select{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #178064;outline-offset:2px}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:#1d2939;background:#f4f6f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:flex}.sidebar{width:244px;flex-shrink:0;background:#11263a;color:#fff;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;margin:4px 8px 46px}.brand-mark{background:#c9e7d4;color:#164e36;border-radius:12px;width:46px;height:46px;display:grid;place-items:center;font-weight:900}.brand strong{display:block;font-size:14px;letter-spacing:1.4px}.brand small{display:block;color:#9eb2c3;font-size:12px;margin-top:6px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{border:0;background:transparent;color:#aebfcf;text-align:left;padding:14px 18px;border-radius:10px;font-weight:600}.sidebar nav button.active,.sidebar nav button:hover{background:#29445a;color:#fff}.side-foot{margin-top:auto;color:#8fa5b9;font-size:12px;line-height:2;padding:12px}.main{flex:1;min-width:0;max-width:1600px;margin:auto;padding:40px 48px}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:2px;color:#6b8193;font-weight:700}.top h1{font-size:32px;margin:9px 0}.top p{margin:0;color:#718095;font-size:14px}.primary{border:0;background:#176a55;color:#fff;border-radius:10px;padding:13px 20px;font-weight:700;white-space:nowrap}.primary:hover{background:#0c5543}.secondary{border:1px solid #d8e1e8;background:#fff;border-radius:9px;padding:12px 18px;color:#344256}.notice{background:#eef5f1;border:1px solid #d8e8de;color:#406356;padding:13px 16px;border-radius:10px;font-size:12px;margin-bottom:26px;line-height:1.6}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{background:#fff;border:1px solid #e8edf1;border-radius:13px;padding:23px;display:flex;flex-direction:column;gap:8px}.stat span{color:#687b8e;font-size:13px}.stat strong{font-size:36px;font-weight:750;letter-spacing:-1px}.stat small{color:#9aa7b3;font-size:12px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:36px 0 18px}.section-title h2,.panel h2{font-size:18px;margin:0}.section-title span{font-size:12px;color:#8393a3}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.column{background:#edf1f5;border-radius:13px;padding:15px;min-height:260px}.column-head{display:flex;align-items:center;gap:9px;padding:5px 3px 16px;font-size:14px}.column-head em{font-style:normal;background:#dde4eb;color:#526477;border-radius:20px;padding:2px 9px;margin-left:auto;font-size:12px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.red{background:#df746c}.amber{background:#e6ad51}.green{background:#65aa91}.task{background:#fff;border:1px solid #e5eaf0;border-radius:11px;padding:17px;margin-bottom:12px;cursor:pointer;box-shadow:0 3px 12px #1b385006}.task:hover{border-color:#92b5a8}.task-top,.task-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8a9aab;font-size:11px}.status{color:#52677b;background:#eff3f6;border-radius:20px;padding:4px 9px}.status.working{background:#fff3dd;color:#9c701e}.task h3{font-size:15px;margin:17px 0 9px}.task p{font-size:12px;line-height:1.8;color:#7d8b9a;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:62px}.task-foot{border-top:1px solid #f0f2f4;padding-top:13px;margin-top:14px}.filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin:18px 0}.filters input,.filters select,.form-grid input,.form-grid select,.form-grid textarea,.list-actions select{width:100%;border:1px solid #dce4eb;background:#fff;border-radius:9px;padding:12px;color:#314357;min-width:0}.list,.panel{background:#fff;border:1px solid #e6ebf0;border-radius:14px;padding:20px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 5px;border-bottom:1px solid #edf0f3}.list-item:last-child{border-bottom:0}.list-item small,.list-item p{color:#8190a0;font-size:12px}.list-item h3{font-size:15px;margin:9px 0}.list-actions{display:flex;gap:8px;align-items:center}.list-actions button{border:1px solid #dce4eb;border-radius:9px;padding:12px;background:#fff;white-space:nowrap}.panel p{color:#8391a0;font-size:13px;line-height:1.7}.check{display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf1f4;padding:17px 5px;font-size:14px}.check input{width:19px;height:19px;accent-color:#176a55}.panel>.secondary{margin-top:22px}.history{display:flex;flex-direction:column;gap:6px;border-bottom:1px solid #eef1f4;padding:15px 0;font-size:13px}.history span{color:#8492a2}.empty{text-align:center;padding:35px 10px;color:#a1adba;font-size:13px}footer{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#9ca9b5;font-size:12px;margin-top:40px;padding-top:20px;border-top:1px solid #e4e9ef}footer>div{display:flex;gap:18px}.link-btn{background:none;border:0;color:#447767;cursor:pointer;font-size:12px;padding:0}.file-label input{display:none}.overlay{position:fixed;inset:0;background:#0c1b2c99;display:grid;place-items:center;padding:15px;z-index:10}.dialog{background:#fff;border-radius:16px;width:min(680px,100%);max-height:94vh;overflow:auto;padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{font-size:20px;margin:0}.dialog-head button{background:none;border:0;font-size:22px;color:#64748b}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font-size:12px;color:#586b7c;font-weight:600;display:grid;gap:7px}.form-grid .wide{grid-column:1/-1}.form-grid textarea{resize:vertical}.muted{font-size:12px;color:#91a0ac;line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toast{position:fixed;bottom:24px;right:24px;background:#163c34;color:#fff;padding:14px 20px;border-radius:9px;z-index:20;font-size:13px;cursor:pointer}@media(max-width:1050px){.main{padding:30px 24px}.sidebar{width:195px}.columns{gap:10px}.column{padding:10px}.stats{gap:10px}.stat{padding:15px}}@media(max-width:760px){.shell{display:block}.sidebar{width:100%;padding:14px 16px;display:block}.brand{margin:0 0 12px}.brand-mark{height:38px;width:38px}.sidebar nav{display:flex;overflow:auto;gap:5px}.sidebar nav button{white-space:nowrap;padding:10px 13px;font-size:12px}.side-foot{display:none}.main{padding:24px 16px}.top{align-items:flex-start}.top h1{font-size:25px}.top p{font-size:12px}.primary{padding:11px 12px;font-size:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat strong{font-size:27px}.columns{grid-template-columns:1fr}.column{min-height:0}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.list-item{align-items:flex-start;flex-direction:column}.list-actions{width:100%}.list-actions>*{flex:1}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.dialog{padding:17px}footer{align-items:flex-start;flex-direction:column}}.task-storage{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.task-view-tabs{display:flex;gap:6px;flex-wrap:wrap}.task-view-tabs button{border:1px solid #dce4eb;background:#fff;color:#52677b;border-radius:9px;padding:11px 14px;min-height:44px}.task-view-tabs button[aria-pressed=true]{background:#176a55;color:#fff;border-color:#176a55}.lifecycle-actions,.save-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lifecycle-actions .secondary{padding:9px 11px;font-size:13px;min-height:44px}.danger{color:#ab3535!important;border-color:#e9caca!important}button:disabled{cursor:default;opacity:.55}.list-actions{flex-wrap:wrap;justify-content:flex-end}.task-dialog-actions{justify-content:space-between;flex-wrap:wrap;gap:8px}.task-dialog-actions .save-actions{margin-left:auto}@media(max-width:760px){.list-actions>.lifecycle-actions{flex-basis:100%;justify-content:flex-end}.task-dialog-actions>.lifecycle-actions{width:100%}.task-dialog-actions .save-actions{width:100%;justify-content:flex-end}.task-storage>.danger{width:100%}}.dialog{display:flex;flex-direction:column;overflow:hidden;max-height:94dvh}.dialog-head{flex-shrink:0}.dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dialog-body fieldset{min-inline-size:0;max-width:100%;margin:16px 0 0}.dialog-body input[type=file]{display:block;width:100%;min-width:0;max-width:100%}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{min-width:0}.dialog-actions{flex-shrink:0;background:#fff;padding-top:12px;margin-top:0;border-top:1px solid #edf0f3}.photo-thumbnail{display:inline-block;padding:0;border:0;background:transparent;border-radius:8px;line-height:0;cursor:zoom-in}.photo-thumbnail img{display:block}.photo-viewer{position:fixed;inset:0;width:min(100%,1100px);height:100%;max-width:100%;max-height:100dvh;margin:auto;padding:0;border:0;background:#10202e;color:#fff;overflow:hidden}.photo-viewer::backdrop{background:#07111ee6}.photo-viewer[open]{display:flex;flex-direction:column}.photo-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.photo-viewer-toolbar button{border:1px solid #ffffff66;border-radius:9px;background:#ffffff18;color:#fff;font-size:16px;min-height:44px;padding:8px 16px}.photo-viewer-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}.photo-viewer-image img{display:block;max-width:100%;max-height:100%;object-fit:contain}@media(max-width:760px){.form-grid{grid-template-columns:minmax(0,1fr)}.dialog input,.dialog select,.dialog textarea{font-size:16px}.dialog-actions>button{min-height:44px}}@media(max-width:760px){.sidebar{position:fixed;bottom:0;left:0;right:0;z-index:8;background:#fff;border-top:1px solid #e1e8ee;padding:7px 6px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -5px 22px #172b4010}.sidebar .brand{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:0;overflow:visible}.sidebar nav button{color:#728294;background:transparent;border-radius:12px;text-align:center;font-size:11px;padding:12px 2px;white-space:normal;min-height:44px}.sidebar nav button.active,.sidebar nav button:hover{color:#116c54;background:#e8f5ef}.main{padding-bottom:calc(105px + env(safe-area-inset-bottom))}.top{margin-bottom:20px}.top .primary{position:fixed;bottom:calc(85px + env(safe-area-inset-bottom));right:17px;z-index:7;border-radius:50px;padding:15px 18px;box-shadow:0 7px 25px #16523e44}.stat{border-radius:17px;box-shadow:0 3px 15px #20344808}.task{border-radius:16px;padding:20px}.column{border-radius:18px;padding:13px}.list,.panel{border-radius:18px}.top h1{letter-spacing:-.5px}.dialog{border-radius:22px 22px 0 0;position:absolute;bottom:0;left:0;right:0;width:100%;max-height:92dvh;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.overlay{display:block;padding:0}}@media(max-width:760px){.storage-view .top>.primary{display:none}.task-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.task-view-tabs button{padding:10px 4px;font-size:12px}}.track-work-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.track-work-types button{min-height:44px;padding:10px 5px;border:1px solid #cad5cc;border-radius:9px;background:#fff;color:#314357;font:inherit}.track-work-types button[aria-pressed=true]{background:#176a55;color:#fff;border-color:#176a55}@media(max-width:760px){.shell:has(.track-work-types) .top>.primary{position:static;box-shadow:none}}.work-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;font-size:12px;color:#587367}.work-meta span{padding:4px 7px;border-radius:6px;background:#edf5f0}.work-meta .overdue{color:#ab4a25;background:#fff0df}.admin-page{max-width:850px;margin:auto;padding:28px 18px 80px}.admin-page header{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.admin-page>.panel{margin-top:18px}.employee-add{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:16px}.employee-add label{display:grid;gap:7px;flex:1;min-width:180px}.employee-add input{width:100%;padding:12px;font-size:16px;border:1px solid #dce4eb;border-radius:8px}.employee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #edf0f3}.employee-row p{margin:6px 0}@media(max-width:760px){.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr))}}.task-notes{white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-title{border:0;background:none;color:inherit;font:inherit;padding:0;text-align:left;min-height:32px}@media(max-width:760px){.toast{bottom:calc(145px + env(safe-area-inset-bottom));left:16px;right:16px}}.task-search{display:flex;gap:8px;min-width:0}.task-search input{flex:1;min-width:0}.today-filter{flex-shrink:0;white-space:nowrap;font-size:13px;padding:10px 12px;min-height:44px}.today-filter[aria-pressed=true]{color:#fff;background:#176a55;border-color:#176a55}@media(max-width:760px){.task-search{grid-column:1/-1}}
