:root{--navy:#21536a;--teal:#078f91;--mint:#e6faf2;--paper:#f1f8fc;--line:#dceaf0;--muted:#64808d;--ink:#24465b;--red:#c43e60;--blue:#368ee8;--shadow:0 6px 22px #388fc008}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}[hidden]{display:none!important}h1,h2,h3,p{margin:0 0 12px}h1{font-size:30px;letter-spacing:-.7px;line-height:1.3}h2{font-size:19px;letter-spacing:-.2px}h3{font-size:16px}.muted{color:var(--muted)}.tiny{font-size:12px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.5px;color:var(--teal);margin-bottom:10px}button,input,select,textarea{font:inherit}button{border:0;border-radius:12px;min-height:44px;padding:10px 16px;cursor:pointer;font-size:13px;font-weight:650;transition:background .15s,transform .15s;touch-action:manipulation}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}.primary{background:linear-gradient(110deg,#099f9c,#2695db);color:white;box-shadow:0 4px 12px #2695db20}.secondary{background:#edf6ff;color:#3373aa;border:1px solid #d6e8fa}.ghost{background:transparent;color:var(--teal)}.danger{color:var(--red)}.full{width:100%}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650;margin-bottom:14px}input,select,textarea{width:100%;min-width:0;min-height:46px;padding:11px 12px;background:white;color:var(--ink);border:1px solid #ccdee7;border-radius:11px;outline:none;font-size:16px;font-weight:400}input:focus,select:focus,textarea:focus{border-color:#44b6cb;box-shadow:0 0 0 3px #3faedb16}input::placeholder,textarea::placeholder{color:#92a7b2}input[type="date"],input[type="time"]{appearance:none;-webkit-appearance:none}label small{font-size:11px;font-weight:400}textarea{resize:vertical}button:focus-visible{outline:3px solid #78cac2;outline-offset:3px}.checkbox{flex-direction:row;align-items:center;font-size:13px;font-weight:400;min-height:44px;margin-top:-4px}.checkbox input{width:20px;height:20px;min-height:20px;accent-color:var(--teal)}
.login-screen{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 12% 5%,#d6f9e9 0,transparent 52%),radial-gradient(ellipse at 95% 90%,#dceeff 0,transparent 60%),#f5fbff}.login-card{width:100%;max-width:390px;background:#fff;border:1px solid #e2f0f4;border-radius:26px;padding:32px;box-shadow:0 16px 60px #508ba514}.brandmark{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#def8ef;color:#08a58d;font-size:29px}.login-card .brandmark{margin-bottom:20px}.login-card h1{font-size:26px;line-height:1.4;letter-spacing:-.7px;margin-bottom:26px;max-width:290px}.login-card label{margin-bottom:7px;color:var(--muted)}.login-card input{height:52px;background:#f8fcff}.login-card .full{min-height:50px;margin-top:16px;font-size:16px}.login-card .error{margin:12px 0 0;font-size:13px}.login-card .error:empty{display:none}.error{color:var(--red)}
.app-header{background:white;border-bottom:1px solid var(--line);padding:16px 3vw;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brandmark.small{width:40px;height:40px;border-radius:12px;font-size:23px;flex-shrink:0}.brand strong{font-size:17px;line-height:1.4}.brand small{display:block;color:var(--muted);font-size:11px}.user-bar{display:flex;align-items:center;gap:10px;font-size:12px;flex-shrink:0}.user-bar>span{background:#eaf6ff;padding:5px 10px;border-radius:20px;color:#3578b7}main{max-width:1680px;padding:30px 3vw;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:6px 0 24px}.page-heading p{margin-bottom:0}.date-control{display:flex;align-items:flex-end;gap:10px}.date-control label{margin:0}.date-control input{font-weight:650}.date-control button{min-height:46px}.status-line{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.status-line .actions{margin-left:auto}.badge{padding:6px 12px;border-radius:30px;background:#dff8eb;color:#22845f;font-size:12px;font-weight:650}.badge.locked{background:#fff0cc;color:#9f6a14}.badge.closed{background:#dcf1ff;color:#2779b6}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stats article{background:white;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:var(--shadow)}.stats article span{font-size:10px;font-weight:750;letter-spacing:1px;color:var(--muted);display:block}.stats strong{font-size:clamp(22px,2.1vw,32px);letter-spacing:-.8px;display:block;margin:9px 0 5px;font-variant-numeric:tabular-nums}.stats small{font-size:11px;color:var(--muted)}.stats article:first-child{border-top:3px solid #7bbcf9}.stats article:nth-child(2){border-top:3px solid #bcb0f4}.stats article:nth-child(4){border-top:3px solid #ffcc89}.stats .highlight{background:linear-gradient(120deg,#e2faf0,#e4f7ff);border-color:#c5eede;color:#168567;border-top:3px solid #65cba9}.stats .highlight span,.stats .highlight small{color:#4d8e80}.tabs{display:flex;gap:6px;border:1px solid var(--line);background:#ffffffa8;padding:5px;border-radius:14px;margin-bottom:22px;overflow:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;background:none;color:var(--muted);min-height:42px}.tabs button.active{color:#087d88;background:#dff7f2}.tabs .rules-link{margin-left:auto;font-size:12px}.panel{background:white;border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:var(--shadow)}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-title h2{margin:0}.daily-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.list-panel>input{margin-bottom:16px;background:#f8fcff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;white-space:nowrap;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line);background:#f1f8fc}td{padding:14px 10px;border-bottom:1px solid #edf3f6;vertical-align:top}td strong{font-weight:650}td small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td .actions button{padding:5px 8px;font-size:12px;min-height:40px}tfoot td{font-weight:700;background:var(--mint)}.empty{text-align:center;padding:60px 20px;color:var(--muted)}.empty span{font-size:40px;color:#9dcfc8}.empty h3{margin:12px 0 4px}.empty p{font-size:12px}.notice{padding:12px 15px;background:#fff4de;border:1px solid #f3dfbb;color:#8b6625;border-radius:12px;font-size:13px;margin-bottom:16px;overflow-wrap:anywhere}.notice.success{background:#e5f9ee;border-color:#c3e9d6;color:#25815b}.notice.error{background:#fff0f3;border-color:#f4d3dc;color:var(--red)}.notice.subtle{background:#edf7ff;color:#4d7b9e;border-color:#d5e9f9}.estimate{background:#edf9f7;border:1px solid #d7eee8;border-radius:11px;padding:12px;margin-bottom:14px;font-size:12px;color:#487e75}details.picker{margin-bottom:14px;border:1px solid #ccdee7;border-radius:11px}details.picker summary{cursor:pointer;padding:12px;font-size:14px;font-weight:650;min-height:46px}details.picker summary span{font-weight:400;color:var(--muted)}details.picker .options{max-height:240px;overflow:auto;padding:4px 12px 8px;border-top:1px solid var(--line)}details.picker label{margin:0;min-height:44px;display:flex;flex-direction:row;align-items:center;font-weight:400;font-size:15px;gap:10px}details.picker input{width:20px;height:20px;min-height:20px;accent-color:var(--teal)}.settings-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.detail-title{margin:28px 0 15px}footer{padding:28px 0 5px;font-size:10px;color:#8b9fa9;letter-spacing:.4px}dialog{border:1px solid var(--line);border-radius:20px;max-width:690px;width:calc(100% - 32px);padding:26px;color:var(--ink);box-shadow:0 20px 100px #21536a25}dialog::backdrop{background:#21536a66;backdrop-filter:blur(3px)}.rules-content{font-size:14px;max-height:65vh;overflow:auto}.rules-content h3{margin-top:20px}.rules-content li{margin-bottom:9px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#confirmDialog{max-width:460px}body.busy{cursor:progress}
@media(min-width:1500px){.daily-layout{grid-template-columns:370px minmax(0,1fr)}td{font-size:13px}}@media screen and (max-width:1100px){.daily-layout{grid-template-columns:300px minmax(0,1fr)}.stats{gap:10px}.stats article{padding:16px}.settings-grid{grid-template-columns:repeat(3,1fr)}.panel{padding:18px}}
@media screen and (max-width:800px){.daily-layout{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:18px}.date-control{width:100%}.date-control label{flex:1}.date-control button{min-width:100px}.settings-grid{grid-template-columns:1fr 1fr}.user-bar{flex-direction:column;align-items:flex-end;gap:0}.user-bar .ghost{font-size:11px;padding:3px 6px;min-height:34px}.app-header{padding:13px 4vw}.brand{align-items:flex-start;gap:9px}.brand strong{display:block;font-size:15px;max-width:245px}.brand small{font-size:10px;margin-top:3px}main{padding:20px 4vw}.page-heading h1{font-size:26px}.page-heading .muted{font-size:13px}.panel-title{flex-wrap:wrap;align-items:center}.status-line{gap:8px}.status-line .actions{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr}.status-line #syncStatus{font-size:11px}.tabs{position:sticky;top:6px;z-index:5;box-shadow:0 3px 15px #388fc012;background:#fff}.tabs button{padding:9px 11px;font-size:12px}.stats strong{font-size:25px}.stats article{padding:15px}.stats article span{font-size:9px;letter-spacing:.7px}.stats small{font-size:10px}.panel{padding:17px;border-radius:16px}.entry-panel{border-top:3px solid #7bd4c7}.list-panel{border-top:3px solid #8dc5f5}.list-panel .actions{gap:4px}.list-panel .actions button{padding:7px 10px;min-height:40px}.table-wrap:has(#casesBody),.table-wrap:has(#detailsBody){overflow:visible}#casesTable,#detailsTable,#casesBody,#detailsBody{display:block;width:100%}#casesTable thead,#detailsTable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#casesBody>tr,#detailsBody>tr{display:block;margin:0 0 14px;border:1px solid #dceaf0;border-radius:13px;padding:12px;background:#fcfeff;overflow-wrap:anywhere}#casesBody>tr:last-child,#detailsBody>tr:last-child{margin-bottom:0}#casesBody td,#detailsBody td{display:block;border:0;padding:5px 0;text-align:left;font-size:14px;white-space:normal}#casesBody td::before,#detailsBody td::before{content:attr(data-label);display:block;color:#8298a3;font-size:10px;font-weight:650;letter-spacing:.3px;margin:2px 0}#casesBody td:first-child{background:#ecf8ff;margin:-12px -12px 8px;padding:12px;border-radius:12px 12px 0 0}#casesBody td:first-child::before{display:none}#casesBody td:first-child strong{font-size:16px;color:#276b99}#casesBody td small,#detailsBody td small{font-size:12px;line-height:1.5}#casesBody td[data-label="Chi thực tế"]{border-top:1px solid var(--line);margin-top:5px;padding-top:10px}#casesBody td[data-label="Chi thực tế"]>strong{font-size:19px;color:#0b977e}#casesBody td .actions{justify-content:flex-end}#casesBody td .actions button{background:#eaf5ff;min-width:65px;min-height:42px}#casesBody td .actions .danger{background:#fff0f4}#casesBody td:last-child::before{display:none}#summary table{font-size:13px}#summary th,#summary td{padding:10px 7px}#summary th{font-size:10px}#summary tbody td:first-child{min-width:115px}#summary tbody td.number{font-size:14px}#summary #detailsBody td:first-child{border-bottom:1px solid var(--line);margin-bottom:6px;padding-bottom:8px}#saveCase{min-height:50px;font-size:16px}.empty{padding:35px 10px}}
@media screen and (max-width:440px){.settings-grid{grid-template-columns:1fr}.stats{gap:9px}.stats strong{font-size:22px;letter-spacing:-.7px}.stats article{padding:12px}.stats small{line-height:1.35;display:block;min-height:27px}.brand strong{font-size:14px;max-width:215px}.brandmark.small{width:32px;height:32px;font-size:20px}.user-bar>span{font-size:10px;padding:4px 8px}.tabs .rules-link{margin-left:0}.login-screen{padding:20px}.login-card{padding:27px 24px;border-radius:23px}.login-card h1{font-size:25px}.form-grid{gap:9px}.panel{padding:15px}.date-control{gap:8px}.page-heading h1{font-size:24px}.panel-title h2{font-size:18px}#summary th{white-space:normal}#summary td{font-size:12px}#summary tbody td.number{font-size:13px}.notice{padding:11px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;font-size:11px}.app-header,.date-control,.stats,.status-line,.tabs,footer,.entry-panel,.actions,button,#notice,#search,.user-bar{display:none!important}main{padding:0;max-width:none}.page-heading{margin:0 0 15px}.page-heading .eyebrow,.page-heading p{display:none}.page-heading h1{font-size:20px}.daily-layout{display:block}.panel{border:0;padding:0;box-shadow:none}.table-wrap{overflow:visible}table{font-size:10px}th,td{padding:8px 6px}tr{break-inside:avoid}thead{display:table-header-group}#daily table th:last-child,#daily table td:last-child{display:none}.notice{padding:8px}#history,#settings{display:none!important}.detail-title{break-before:auto}.panel-title{margin:0 0 10px}}
