:root{--red:#8b0f0f;--red-dark:#641010;--cream:#f7efe4;--paper:#fffdf8;--ink:#2f211c;--muted:#765f54;--line:#decdbb;--green:#287a4b}*{box-sizing:border-box}html{background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button{background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;display:inline-flex}button.secondary,.button.secondary{color:var(--red);border:1px solid var(--red);background:#fff}button.danger{background:#a02626}button:disabled{opacity:.55;cursor:not-allowed}.shell{min-height:100vh}.topbar{background:linear-gradient(135deg,var(--red-dark),var(--red));color:#fff;z-index:10;justify-content:space-between;align-items:center;gap:20px;padding:14px max(18px,50vw - 590px);display:flex;position:sticky;top:0}.brand{letter-spacing:.04em;font-weight:700}.nav{flex-wrap:wrap;gap:8px;display:flex}.nav a{border-radius:7px;padding:7px 10px}.nav a:hover{background:#ffffff24}.container{width:min(1180px,100% - 28px);margin:24px auto 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}h1,h2,h3{margin-top:0}h1{font-size:clamp(1.55rem,3vw,2.15rem)}.muted{color:var(--muted)}.grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 5px 18px #4b27140f}.card h3{margin-bottom:8px}.metric{color:var(--red);font-size:2rem;font-weight:700}.list{gap:12px;display:grid}.record-row{grid-template-columns:minmax(180px,1.8fr) 130px 100px 120px;align-items:center;gap:14px;display:grid}.status{background:#eee3d7;border-radius:99px;width:max-content;padding:4px 10px;font-size:.85rem;display:inline-block}.status.approved{color:#1b6339;background:#dcefe3}.status.rejected{color:#8a2222;background:#f4dada}.status.submitted{color:#805900;background:#fff0c7}.filters,.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filters input,.filters select{width:auto;min-width:150px}label{color:var(--muted);gap:7px;font-size:.94rem;display:grid}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cbb7a5;border-radius:8px;padding:10px 12px}textarea{resize:vertical;min-height:100px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .wide,.category{grid-column:1/-1}.category{color:var(--red);border-bottom:1px solid var(--line);padding:12px 0 4px;font-weight:700}.radio-group{flex-wrap:wrap;align-items:center;gap:16px;min-height:42px;display:flex}.radio-group label{color:var(--ink);grid-template-columns:auto auto;align-items:center;display:flex}.radio-group input{width:auto}.error{color:#9d1d1d;background:#fce2e2;border-radius:8px;padding:10px}.success{color:#16643a;background:#dff2e5;border-radius:8px;padding:10px}.login{width:min(430px,100% - 32px);margin:10vh auto}.login .card{padding:28px}.login form{gap:16px;display:grid}.detail-grid{border:1px solid var(--line);border-bottom:0;grid-template-columns:180px 1fr;display:grid}.detail-grid>div{border-bottom:1px solid var(--line);padding:11px 13px}.detail-grid .label{color:var(--muted);background:#f6eadc}.image-preview{border:1px solid var(--line);border-radius:8px;max-width:220px;max-height:180px}.print-sheet{color:#111;background:#fff;width:min(210mm,100%);min-height:270mm;margin:auto;padding:12mm}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:8px}th{background:#f6eadc}@media (max-width:720px){.topbar{flex-direction:column;align-items:flex-start;position:static}.record-row,.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:110px 1fr}.container{margin-top:16px}}@page{size:A4;margin:12mm}@media print{.no-print,.topbar{display:none!important}body{background:#fff}.container{width:100%;margin:0}.print-sheet{min-height:0;padding:0}.card{box-shadow:none;border:0}}
