/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.table{display:table}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}:root{--navy:#153d57;--navy-2:#0d3148;--mint:#30b796;--mint-dark:#17856f;--mint-pale:#e9f7f3;--sky:#edf5f7;--line:#dce7e9;--text:#233844;--muted:#71848e;--amber:#f3b443;--paper:#fff}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);background:#f3f7f7;margin:0}body{font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{color:#fff;background:linear-gradient(110deg, var(--navy-2), var(--navy) 58%, #155f67);border-bottom:4px solid var(--mint);z-index:20;justify-content:space-between;align-items:center;height:86px;padding:0 30px;display:flex;position:sticky;top:0;box-shadow:0 4px 18px #173e5724}.brand{align-items:center;gap:15px;display:flex}.brand img{object-fit:contain;border-radius:14px;width:54px;height:54px;box-shadow:0 3px 8px #071e2c44}.brand span{letter-spacing:.15em;color:#bceadd;margin-bottom:3px;font-size:12px;display:block}.brand h1{letter-spacing:.06em;margin:0;font-size:24px;font-weight:750}.top-actions{color:#d4ebe8;align-items:center;gap:9px;font-size:13px;display:flex}.status-dot{background:#65e5a8;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #65e5a81a}.user-chip{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:8px;margin-left:12px;padding:9px 13px}.brand-button{color:inherit;text-align:left;background:0 0;border:0;padding:0}.account-box{flex-direction:column;min-width:82px;margin-left:8px;display:flex}.account-box strong{color:#fff;font-size:13px}.account-box small{color:#abd5d0;font-size:10px}.admin-shortcut,.logout-btn{color:#fff;background:#ffffff10;border:1px solid #ffffff2c;border-radius:7px;padding:8px 11px;font-size:12px}.logout-btn{color:#c8e1de}.workspace{grid-template-columns:292px minmax(0,1fr);min-height:calc(100vh - 86px);display:grid}.sidebar{border-right:1px solid var(--line);background:#f8fbfb;padding:24px 15px;overflow-y:auto}.side-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 8px 17px;display:flex}.side-heading small{color:var(--mint-dark);letter-spacing:.17em;font-size:10px;font-weight:800;display:block}.side-heading strong{color:var(--navy);font-size:18px}.side-heading>button{color:#fff;background:var(--mint-dark);border:0;border-radius:9px;width:34px;height:34px;font-size:22px;line-height:1;box-shadow:0 4px 10px #17856f28}.inline-form{background:var(--mint-pale);border:1px solid #cbe8df;border-radius:10px;margin:12px 2px;padding:12px}.inline-form label{color:var(--mint-dark);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.inline-form div{gap:6px;display:flex}.inline-form input{background:#fff;border:1px solid #b9d5ce;border-radius:6px;outline:none;width:100%;min-width:0;padding:8px}.inline-form button{color:#fff;background:var(--mint-dark);border:0;border-radius:6px;padding:0 12px}.tree{margin-top:10px}.year-group{margin:3px 0}.year-row{align-items:center;gap:4px;display:flex}.year-button,.contract-button,.branches button{text-align:left;width:100%;color:var(--text);background:0 0;border:0}.year-button{border-radius:8px;flex:1;align-items:center;gap:7px;min-width:0;padding:10px 9px;font-weight:750;display:flex}.year-button:hover,.year-button.active{color:var(--navy);background:#e4f1ef}.year-button em{color:#44746d;text-align:center;background:#d4e8e5;border-radius:10px;min-width:22px;margin-left:auto;padding:2px 6px;font-size:10px;font-style:normal}.year-delete{color:#a86c6c;opacity:.55;background:0 0;border:0;border-radius:7px;flex:0 0 28px;width:28px;height:28px;padding:0;font-size:18px;line-height:1}.year-delete:hover:not(:disabled){color:#a43d3d;opacity:1;background:#fae9e7}.year-delete:disabled{cursor:not-allowed;opacity:.2}.chevron{color:#779097;font-size:23px;line-height:.6;transition:transform .18s;display:inline-block}.chevron.open{transform:rotate(90deg)}.chevron.small{font-size:17px}.contract-tree{border-left:1px solid #d3e2e1;margin-left:9px;padding-left:7px}.contract-button{color:#38515d;border-radius:6px;align-items:center;gap:5px;padding:7px 6px;font-size:13px;font-weight:650;display:flex}.contract-button:hover,.contract-button.selected{color:var(--mint-dark);background:#edf5f4}.branches{border-left:1px dashed #cadbd9;margin:1px 0 7px 20px;padding-left:10px}.branches button,.branch-label{color:#627780;padding:5px 6px;font-size:12px}.branches button:hover{color:var(--mint-dark)}.branches button.branch-active{color:var(--mint-dark);background:#e7f4f1;border-radius:5px;font-weight:750}.branches .sub{color:#84949a;padding-left:17px}.branch-label{font-weight:700}.branch-label.row{justify-content:space-between;align-items:center;display:flex}.mini-add{height:22px;text-align:center!important;width:22px!important;color:var(--mint-dark)!important;background:#e3f1ef!important;border-radius:5px!important;padding:0!important}.add-contract{width:100%;color:var(--mint-dark);background:#eff8f6;border:1px dashed #a9cfca;border-radius:8px;margin-top:15px;padding:11px;font-size:13px;font-weight:700}.add-contract:disabled{opacity:.45;cursor:not-allowed}.admin-side{color:#536b75;text-align:left;background:0 0;border:0;width:100%;margin-top:10px;padding:10px;font-size:12px}.main-content{min-width:0;padding:28px 34px 48px}.hero-panel{color:#fff;background:linear-gradient(125deg,#17445f 0%,#186c71 65%,#2b9e87 100%);border-radius:16px;justify-content:space-between;align-items:center;min-height:164px;padding:27px 32px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 26px #17445f2b}.hero-panel:after{content:"";border:55px solid #ffffff0b;border-radius:50%;width:330px;height:330px;position:absolute;top:-190px;right:-100px}.eyebrow{color:#aee9d7;letter-spacing:.18em;margin:0 0 5px;font-size:12px;font-weight:800}.hero-panel h2{letter-spacing:.05em;margin:0;font-size:28px}.hero-panel>div>p:last-child{color:#d6ecea;font-size:14px}.overall{z-index:1;align-items:center;gap:15px;padding-right:12px;display:flex;position:relative}.overall p{font-weight:650;font-size:13px!important}.ring{--progress:0deg;background:conic-gradient(#68e2b6 var(--progress), #ffffff24 0);border-radius:50%;place-items:center;width:88px;height:88px;display:grid;position:relative}.ring:before{content:"";background:#216d71;border-radius:50%;width:67px;height:67px;position:absolute}.ring span{font-size:24px;font-weight:800;position:relative}.ring small{margin-left:2px;font-size:11px}.action-card{background:#f2faf8;border:1px solid #cde5e1;border-radius:12px;align-items:center;gap:10px;margin-top:17px;padding:17px 20px;display:flex;box-shadow:0 5px 16px #203d4910}.action-card>div{margin-right:auto}.action-card h3{color:var(--navy);margin:0 0 3px;font-size:16px}.action-card p{color:var(--muted);margin:0;font-size:12px}.action-card select{background:#fff;border:1px solid #b9d6d1;border-radius:7px;min-width:125px;padding:9px}.action-card>button{color:#fff;background:var(--mint-dark);border:0;border-radius:7px;padding:10px 14px;font-size:13px;font-weight:700}.action-card>button.ghost{color:var(--muted);background:0 0;border:1px solid #cadbd9}.progress-section{margin-top:26px}.section-title{justify-content:space-between;align-items:end;margin-bottom:13px;display:flex}.section-title h3,.memo-head h3{color:var(--navy);margin:0;font-size:18px}.section-title p,.memo-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.legend{color:var(--muted);gap:15px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:3px;width:9px;height:9px;display:inline-block}.legend .done{background:var(--mint)}.legend .pending{background:#f2c94c}.contract-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.progress-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:18px;box-shadow:0 4px 14px #173b4c0a}.progress-card:hover{border-color:#b9dcd5;transition:all .18s;transform:translateY(-1px)}.progress-card.clickable{cursor:pointer}.card-top{grid-template-columns:38px 1fr auto;align-items:center;gap:11px;display:grid}.category-icon{width:38px;height:38px;color:var(--mint-dark);background:var(--mint-pale);border-radius:9px;place-items:center;font-weight:800;display:grid}.card-top small{color:#83939b;font-size:10px}.card-top h4{color:#314b58;margin:2px 0 0;font-size:14px}.card-top strong{color:var(--navy);font-size:19px}.bar{background:#e8eeef;border-radius:8px;height:8px;margin-top:15px;display:flex;overflow:hidden}.bar span{height:100%;transition:width .25s;display:block}.bar .completed-segment{background:linear-gradient(90deg, var(--mint-dark), var(--mint))}.bar .construction-segment{background:linear-gradient(90deg,#f2c94c,#f5dc75)}.bar-label{color:#82939a;justify-content:space-between;margin-top:7px;font-size:10px;display:flex}.money-row{color:#83939a;justify-content:space-between;margin-top:9px;font-size:10px;display:flex}.money-row b{color:#48606c;font-weight:650}.empty-state{text-align:center;color:var(--muted);background:#fff;border:1px dashed #bdcfce;border-radius:12px;grid-column:1/-1;padding:42px}.memo-section{border:1px solid var(--line);border-top:3px solid var(--amber);background:#fff;border-radius:12px;margin-top:25px;padding:21px;box-shadow:0 4px 14px #173b4c0b}.memo-head{align-items:center;gap:11px;display:flex}.memo-head>span{color:#8c8066;background:#fff7e5;border-radius:12px;margin-left:auto;padding:5px 9px;font-size:10px}.memo-icon{color:#976613;background:#fff2d6;border-radius:9px;place-items:center;width:39px;height:39px;font-size:20px;display:grid}.memo-section textarea{resize:vertical;width:100%;min-height:135px;color:var(--text);background:#fbfdfd;border:1px solid #d9e1e2;border-radius:8px;outline:none;margin-top:15px;padding:14px 16px;line-height:1.75}.memo-section textarea:focus{border-color:#77bbae;box-shadow:0 0 0 3px #3ab59514}.memo-actions{justify-content:space-between;align-items:center;margin-top:11px;display:flex}.memo-actions small{color:#93a1a7}.memo-actions button{color:#fff;background:var(--navy);border:0;border-radius:8px;padding:10px 18px;font-weight:700}.memo-actions button:disabled{opacity:.55;cursor:wait}.toast{z-index:50;color:#fff;background:#157763;border-radius:9px;padding:12px 17px;font-size:13px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 25px #153d5740}.toast.error{background:#b44d42}.loading-screen{text-align:center;min-height:100vh;color:var(--navy);background:#f1f7f6;place-content:center;display:grid}.loading-mark{border:4px solid #c9e4dd;border-top-color:var(--mint-dark);border-radius:50%;width:42px;height:42px;margin:auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:linear-gradient(135deg,#0b334c,#14666a 68%,#2a9c84);place-items:center;min-height:100vh;padding:30px;display:grid;position:relative;overflow:hidden}.login-page:before{content:"";background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0}.login-decor{border:70px solid #ffffff08;border-radius:50%;position:absolute}.login-decor.one{width:440px;height:440px;top:-160px;right:-170px}.login-decor.two{width:330px;height:330px;bottom:-140px;left:-130px}.login-card{z-index:1;background:#fffffffa;border-radius:18px;width:min(450px,100%);padding:35px 42px 25px;position:relative;box-shadow:0 24px 70px #06213266}.login-brand{align-items:center;gap:14px;display:flex}.login-brand img{border-radius:13px;width:58px;height:58px}.login-brand small{color:var(--mint-dark);letter-spacing:.12em;font-size:11px}.login-brand h1{color:var(--navy);letter-spacing:.03em;margin:4px 0 0;font-size:21px}.login-line{background:#dfeaea;height:1px;margin:24px 0}.login-card h2{color:var(--navy);margin:0;font-size:23px}.login-card>p{color:var(--muted);margin:7px 0 20px;font-size:13px}.login-card label{color:#435a65;margin-bottom:15px;font-size:12px;font-weight:700;display:block}.login-card input{background:#fbfdfd;border:1px solid #cbdadc;border-radius:8px;outline:none;width:100%;margin-top:7px;padding:12px 13px}.login-card input:focus{border-color:var(--mint);box-shadow:0 0 0 3px #30b79617}.login-card form>button{color:#fff;background:linear-gradient(90deg, var(--navy), #15636a);border:0;border-radius:8px;width:100%;margin-top:3px;padding:13px;font-weight:750}.login-error{color:#a5443b;background:#fff0ee;border-radius:7px;margin:-3px 0 12px;padding:9px 11px;font-size:12px}.login-card footer{text-align:center;color:#95a2a6;border-top:1px solid #e4ebec;margin-top:22px;padding-top:17px;font-size:10px}.page-heading{justify-content:space-between;align-items:center;margin-bottom:17px;display:flex}.page-heading p{color:var(--mint-dark);letter-spacing:.18em;margin:0 0 4px;font-size:10px;font-weight:850}.page-heading h2{color:var(--navy);margin:0;font-size:25px}.page-heading span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.document-badge{color:#54736d;background:#f2f9f7;border:1px solid #c9ddd9;border-radius:14px;padding:7px 11px;font-size:10px}.document-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px;box-shadow:0 5px 18px #173b4c0d}.document-toolbar{border-bottom:1px solid #e4ebec;align-items:center;gap:9px;margin-bottom:18px;padding-bottom:15px;display:flex}.document-toolbar>div:first-child{margin-right:auto}.document-toolbar strong{color:var(--navy);font-size:14px;display:block}.document-toolbar span{color:var(--muted);font-size:11px}.primary-btn,.outline-btn{border-radius:7px;padding:9px 14px;font-size:12px;font-weight:750}.primary-btn{border:1px solid var(--navy);color:#fff;background:var(--navy)}.primary-btn:disabled{opacity:.55;cursor:wait}.outline-btn{color:var(--mint-dark);background:#fff;border:1px solid #a8c9c3}.contract-amount-chip{color:#6b807f;background:#eef7f5;border-radius:7px;padding:7px 11px;font-size:10px;margin-right:8px!important}.contract-amount-chip b{margin-left:4px;color:var(--mint-dark)!important;font-size:13px!important;display:inline!important}.table-scroll{overflow-x:auto}.official-table{border-collapse:collapse;table-layout:fixed;color:#273c47;width:100%}.official-table th,.official-table td{border:1px solid #bac6c9;padding:0}.official-table thead th{color:var(--navy);letter-spacing:.04em;background:#eff5f5;padding:9px 7px;font-size:12px}.official-table input,.official-table textarea{color:#2c414b;background:0 0;border:0;outline:0;width:100%;min-height:36px;padding:7px 8px;font-size:12px}.official-table input:focus,.official-table textarea:focus{background:#f0faf7;box-shadow:inset 0 0 0 2px #62b9a7}.basic-table th:first-child{width:52px}.basic-table th:nth-child(2){width:150px}.basic-table th:nth-child(4){width:115px}.basic-table th:nth-child(5){width:135px}.basic-table tbody>tr>td:first-child{text-align:center;background:#f8fbfb;font-size:11px}.basic-table tbody th{text-align:left;background:#fbfdfd;padding:7px 8px;font-size:12px;font-weight:650}.formula-note{background:#f0f9f7;border:1px solid #cbe4de;border-radius:9px;gap:11px;margin-top:17px;padding:13px 15px;display:flex}.formula-note>span{color:#fff;background:var(--mint-dark);border-radius:8px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.formula-note strong{color:var(--navy);font-size:12px}.formula-note p{color:#657c84;margin:3px 0 0;font-size:11px}.official-header{border:1px solid #9eacad;border-bottom:0;margin-bottom:0;padding-top:12px;position:relative}.official-header h3,.official-header h4{text-align:center;color:#142f3f;margin:0;font-family:DFKai-SB,BiauKai,serif}.official-header h3{font-size:22px}.official-header h4{margin-top:3px;font-size:19px}.official-date{justify-content:flex-end;padding:7px 10px 5px;display:flex}.official-date label{color:#50626a;align-items:center;gap:6px;font-size:11px;display:flex}.official-date input{border:0;border-bottom:1px dashed #9cabad;outline:0;width:120px;padding:3px}.official-meta-grid{grid-template-columns:3fr 1.5fr;display:grid}.official-meta-grid label{color:#304751;border-top:1px solid #9eacad;grid-template-columns:86px 1fr;align-items:center;min-height:42px;font-size:11px;display:grid}.official-meta-grid label:nth-child(odd){border-right:1px solid #9eacad}.official-meta-grid label:first-line{text-align:center}.official-meta-grid input,.official-meta-grid textarea{resize:none;background:#fff;border:0;border-left:1px solid #9eacad;outline:0;height:100%;min-height:41px;padding:7px}.contract-sheet th:first-child{width:85px}.contract-sheet th:nth-child(3){width:170px}.contract-sheet th:nth-child(4){width:140px}.official-table .action-col{width:65px}.official-table .number-input{text-align:right}.official-table tfoot th,.official-table tfoot td{color:var(--navy);background:#f1f6f6;padding:10px;font-size:12px;font-weight:750}.delete-row{color:#a44b43;background:#fff0ee;border:0;border-radius:5px;margin:auto;padding:5px 7px;font-size:10px;display:block}.detail-sheet{min-width:850px}.detail-sheet th:first-child{width:70px}.detail-sheet th:nth-child(2){width:340px}.detail-sheet th:nth-child(3){width:75px}.detail-sheet th:nth-child(4),.detail-sheet th:nth-child(5),.detail-sheet th:nth-child(6){width:110px}.detail-sheet textarea{resize:vertical;min-height:42px}.readonly-money{text-align:right;background:#f8fbfb;font-size:11px;padding:7px!important}.dispatch-list-toolbar{border-bottom:1px solid #e3ebec;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:16px;display:flex}.status-tabs{background:#edf3f3;border-radius:8px;padding:3px;display:flex}.status-tabs button{color:#6b7f87;background:0 0;border:0;border-radius:6px;padding:7px 14px;font-size:12px;font-weight:750}.status-tabs button.active{color:#fff;background:var(--navy);box-shadow:0 2px 7px #173b4c2c}.dispatch-progress-note{color:#71858c;flex:1;font-size:11px}.dispatch-progress-note b{color:var(--mint-dark);font-size:13px}.dispatch-cards{gap:10px;display:grid}.dispatch-cards article{background:#fbfdfd;border:1px solid #dbe5e6;border-radius:10px;align-items:center;gap:14px;padding:15px;display:flex}.dispatch-status{border-radius:12px;flex:none;padding:5px 8px;font-size:10px;font-weight:800}.dispatch-status.completed{color:#18725f;background:#def3ed}.dispatch-status.construction{color:#8a661e;background:#fff2cf}.dispatch-card-main{flex:1;min-width:0}.dispatch-card-main small,.dispatch-card-amount small{color:#91a0a5;font-size:9px}.dispatch-card-main h3{color:var(--navy);margin:2px 0;font-size:14px}.dispatch-card-main p{color:#506872;margin:0 0 4px;font-size:11px}.dispatch-card-main span{color:#8b999e;font-size:9px}.dispatch-card-amount{text-align:right;min-width:135px}.dispatch-card-amount strong{color:var(--mint-dark);margin-top:3px;font-size:15px;display:block}.list-delete{margin:0}.dispatch-official-header{color:#183340;border:1px solid #879799;border-bottom:0;font-family:DFKai-SB,BiauKai,serif}.dispatch-official-header h3,.dispatch-official-header h4{text-align:center;margin:0}.dispatch-official-header h3{padding-top:12px;font-size:22px}.dispatch-official-header h4{padding:3px 0 12px;font-size:20px}.dispatch-meta-grid{grid-template-columns:1fr 1fr;font-family:inherit;display:grid}.dispatch-meta-grid label{text-align:center;border-top:1px solid #879799;grid-template-columns:104px 1fr;align-items:stretch;min-height:39px;font-size:12px;line-height:39px;display:grid}.dispatch-meta-grid label:nth-child(odd){border-right:1px solid #879799}.dispatch-meta-grid input,.dispatch-meta-grid select{background:#fff;border:0;border-left:1px solid #879799;outline:0;min-width:0;padding:7px 9px}.dispatch-meta-grid .status-field{border-right:0;grid-column:1/-1}.dispatch-meta-grid .status-field select{color:var(--navy);font-weight:800}.dispatch-add-row{background:#f2f9f7;border:1px solid #cde3df;border-radius:9px;align-items:end;gap:10px;margin:16px 0 12px;padding:12px;display:flex}.dispatch-add-row label{color:#536a73;flex:1;font-size:10px;font-weight:750}.dispatch-add-row select{background:#fff;border:1px solid #bfd1d2;border-radius:6px;width:100%;margin-top:5px;padding:8px}.dispatch-sheet{min-width:1050px}.dispatch-sheet th:first-child{width:75px}.dispatch-sheet th:nth-child(2){width:350px}.dispatch-sheet th:nth-child(3){width:65px}.dispatch-sheet th:nth-child(4),.dispatch-sheet th:nth-child(5),.dispatch-sheet th:nth-child(6){width:105px}.dispatch-sheet th:nth-child(7){width:125px}.dispatch-sheet textarea{resize:vertical;min-height:48px}.contract-item-select{color:#3c6e67;background:#f2f8f7;border:0;border-bottom:1px dashed #c4d0d2;width:100%;padding:6px;font-size:10px}.dispatch-grand-total{color:#b62d27!important;background:#fff7db!important;border:3px solid #e5483f!important;font-size:14px!important}.dispatch-note{color:#536b74;margin-top:14px;font-size:11px;font-weight:750;display:block}.dispatch-note textarea{resize:vertical;border:1px solid #cedbdd;border-radius:7px;width:100%;min-height:70px;margin-top:6px;padding:10px}.assessment-layout{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:16px;display:grid}.assessment-list{border:1px solid var(--line);background:#fff;border-radius:12px;position:sticky;top:92px;overflow:hidden;box-shadow:0 4px 15px #163a4b0c}.assessment-list-head{border-bottom:1px solid #e3ebec;justify-content:space-between;align-items:center;padding:15px;display:flex}.assessment-list-head h3{color:var(--navy);margin:0;font-size:15px}.assessment-list-head span{color:var(--muted);font-size:10px}.assessment-list article{cursor:pointer;border-bottom:1px solid #ebf0f1;padding:13px 15px}.assessment-list article:hover,.assessment-list article.active{box-shadow:inset 3px 0 var(--mint-dark);background:#edf7f5}.assessment-list article small,.assessment-list article strong,.assessment-list article span{display:block}.assessment-list article small{color:#8a999f;font-size:9px}.assessment-list article strong{color:#36505c;margin:4px 0;font-size:12px;line-height:1.45}.assessment-list article span{color:var(--mint-dark);font-size:11px;font-weight:750}.assessment-empty{text-align:center;color:#92a0a5;padding:35px 15px;font-size:11px}.assessment-document{min-width:0}.assessment-delete{margin:0;padding:8px 11px}.assessment-sheet{color:#243b47;background:#fff;border:1px solid #839295}.assessment-sheet>h3{text-align:center;border-bottom:1px solid #839295;margin:0;padding:14px;font-family:DFKai-SB,BiauKai,serif;font-size:21px}.assessment-grid{grid-template-columns:1.5fr .75fr .75fr;display:grid}.assessment-grid label{text-align:center;border-bottom:1px solid #9aa7a9;border-right:1px solid #9aa7a9;grid-template-columns:92px 1fr;align-items:stretch;min-height:42px;font-size:11px;line-height:42px;display:grid}.assessment-grid label:nth-child(3n){border-right:0}.assessment-grid label.wide{grid-column:span 2}.assessment-grid label.full-row{border-right:0;grid-column:1/-1}.assessment-grid label.tall{min-height:86px}.assessment-grid input,.assessment-grid select,.assessment-grid textarea{resize:vertical;background:#fff;border:0;border-left:1px solid #9aa7a9;outline:0;width:100%;min-width:0;padding:8px;line-height:1.5}.assessment-grid input:focus,.assessment-grid select:focus,.assessment-grid textarea:focus{background:#f1faf8;box-shadow:inset 0 0 0 2px #5cb39f}.assessment-sheet>h4{text-align:center;border-bottom:1px solid #839295;margin:0;padding:10px;font-family:DFKai-SB,BiauKai,serif;font-size:17px}.attachment-upload{background:#f3f8f7;border-bottom:1px solid #aebabc;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;padding:13px;display:grid}.attachment-upload label{color:#536a73;font-size:10px;font-weight:750}.attachment-upload input{background:#fff;border:1px solid #c8d6d7;border-radius:6px;width:100%;margin-top:5px;padding:8px}.attachment-upload.multi-upload{grid-template-columns:1fr auto}.pending-file-list{background:#fbfdfd;border-bottom:1px solid #aebabc;gap:7px;padding:12px 13px;display:grid}.pending-file-list>div{grid-template-columns:minmax(140px,.7fr) minmax(180px,1.3fr) auto;align-items:center;gap:8px;display:grid}.pending-file-list span{color:#536a73;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.pending-file-list input{border:1px solid #c8d6d7;border-radius:6px;width:100%;padding:8px}.pending-file-list .delete-row{margin:0}.assessment-attachments{gap:14px;padding:14px;display:grid}.assessment-attachments article{background:#fafcfc;border:1px solid #aebabc;overflow:hidden}.attachment-caption{border-bottom:1px solid #d2dcdd;justify-content:space-between;gap:10px;padding:9px 11px;display:flex}.attachment-caption strong,.attachment-caption span{display:block}.attachment-caption strong{color:#344e59;font-size:12px}.attachment-caption span{color:#8a999e;margin-top:2px;font-size:9px}.assessment-attachments img{object-fit:contain;width:min(100%,760px);max-height:620px;margin:12px auto;display:block}.assessment-attachments iframe{border:0;width:100%;min-height:620px}.attachment-placeholder{text-align:center;color:#89999f;background:#f7fafa;padding:45px 20px;font-size:11px}.repair-table{max-width:760px;margin:auto}.repair-table th:first-child{width:145px}.repair-table th:nth-child(3){width:120px}.repair-table th:nth-child(4){width:170px}.repair-table select{background:0 0;border:0;width:100%;min-height:38px;padding:7px}.repair-status{text-align:center;color:#658078;font-size:10px;padding:8px!important}.repair-actions{justify-content:center;align-items:center;gap:7px;display:flex}.repair-actions .delete-row{margin:0}.repair-empty{margin-top:15px}.admin-layout{grid-template-columns:310px 1fr;gap:17px;display:grid}.admin-create,.user-list-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 15px #163a4b0c}.admin-create h3,.user-list-head h3{color:var(--navy);margin:0;font-size:17px}.admin-create>p{color:var(--muted);margin:4px 0 16px;font-size:11px}.admin-create label{color:#586f79;margin:11px 0;font-size:11px;font-weight:700;display:block}.admin-create input,.admin-create select{background:#fbfdfd;border:1px solid #ccdadd;border-radius:7px;outline:0;width:100%;margin-top:5px;padding:9px}.full{width:100%}.user-list-head{border-bottom:1px solid #e3ebec;justify-content:space-between;align-items:center;padding-bottom:13px;display:flex}.user-list-head span{color:var(--muted);font-size:11px}.user-list article{border-bottom:1px solid #ecf1f2;align-items:center;gap:10px;padding:13px 3px;display:flex}.avatar{width:36px;height:36px;color:var(--mint-dark);background:var(--mint-pale);border-radius:9px;place-items:center;font-weight:800;display:grid}.user-info{flex:1;min-width:0}.user-info strong{color:#344c57;align-items:center;gap:6px;font-size:13px;display:flex}.user-info i{border-radius:5px;padding:2px 5px;font-size:8px;font-style:normal}.user-info i.admin{color:#805d1e;background:#fff2d7}.user-info i.staff{color:#42726a;background:#e8f5f2}.user-info i.section_chief{color:#315e83;background:#e8f1fa}.user-info span{color:#849399;font-size:10px}.account-status{border-radius:10px;padding:4px 7px;font-size:9px}.account-status.on{color:#267a68;background:#e9f7f3}.account-status.off{color:#8b7470;background:#f3efee}.user-list article>button{color:#61777f;background:#fff;border:1px solid #cbdadc;border-radius:6px;padding:6px 8px;font-size:9px}.user-list article>button.danger-outline{color:#9c4e46;border-color:#e5c7c3}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c2738aa;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.password-modal{background:#fff;border-radius:14px;width:min(420px,100%);padding:27px;box-shadow:0 22px 65px #041b2b66}.password-modal h3{color:var(--navy);margin:0;font-size:19px}.password-modal p{color:var(--muted);font-size:12px;line-height:1.6}.password-modal input{border:1px solid #cbdadd;border-radius:7px;outline:0;width:100%;margin:7px 0;padding:11px}.password-modal>div:last-child{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.modal-lock{color:#fff;background:var(--mint-dark);border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:13px;display:grid}.form-error{color:#a2473e;margin:4px 0;font-size:11px;display:block}@media (width<=1050px){.admin-layout,.official-meta-grid{grid-template-columns:1fr}.official-meta-grid label:nth-child(odd){border-right:0}.dispatch-list-toolbar{flex-wrap:wrap}.dispatch-progress-note{order:3;width:100%}.dispatch-cards article{flex-wrap:wrap}.dispatch-card-main{min-width:250px}.assessment-layout{grid-template-columns:1fr}.assessment-list{position:static}.assessment-list article{vertical-align:top;border-right:1px solid #ebf0f1;width:min(230px,100%);display:inline-block}}@media (width<=980px){.workspace{grid-template-columns:245px minmax(0,1fr)}.main-content{padding:22px}.contract-grid{grid-template-columns:1fr}.top-actions{display:none}}@media (width<=720px){.topbar{height:auto;min-height:76px;padding:12px 16px}.brand img{width:45px;height:45px}.brand h1{font-size:18px}.brand span{font-size:10px}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:370px}.main-content{padding:18px 14px 35px}.hero-panel{padding:23px}.hero-panel h2{font-size:22px}.overall p{display:none}.ring{width:72px;height:72px}.ring:before{width:55px;height:55px}.section-title{display:block}.legend{margin-top:9px}.action-card{flex-wrap:wrap;align-items:stretch}.action-card>div{width:100%}.document-toolbar{flex-wrap:wrap}.document-toolbar>div:first-child{width:100%}.contract-amount-chip{width:auto!important}.basic-table{min-width:800px}.admin-layout{display:block}.admin-create{margin-bottom:14px}.user-list article{flex-wrap:wrap}.user-info{min-width:150px}.official-header h3{font-size:18px}.official-header h4{font-size:16px}.dispatch-meta-grid{grid-template-columns:1fr}.dispatch-meta-grid label:nth-child(odd){border-right:0}.dispatch-meta-grid .status-field{grid-column:auto}.dispatch-add-row{flex-direction:column;align-items:stretch}.dispatch-add-row .outline-btn{width:100%}.assessment-grid{grid-template-columns:1fr}.assessment-grid label,.assessment-grid label.wide,.assessment-grid label.full-row{border-right:0;grid-column:auto}.attachment-upload,.attachment-upload.multi-upload,.pending-file-list>div{grid-template-columns:1fr}.assessment-attachments iframe{min-height:430px}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
