:root{--color-primary:#2b6ca3;--color-primary-dark:#1f4e78;--color-primary-light:#e8f1f8;--color-accent:#3fa796;--color-danger:#c0392b;--color-danger-light:#fdecea;--color-text:#1f2937;--color-text-muted:#6b7280;--color-border:#e2e8f0;--color-bg:#f4f7fa;--color-surface:#fff;--color-surface-alt:#f8fafc;--radius:10px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 16px #00000014;--font-family:"Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text);margin:0}h1,h2,h3{color:var(--color-primary-dark);margin-top:0}.page{max-width:1100px;margin:0 auto;padding:32px 40px}.page-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.topbar{background:var(--color-surface);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;margin-bottom:40px;padding:16px 32px;display:flex}.topbar-brand{color:var(--color-primary-dark);font-size:18px;font-weight:700}.card-grid{flex-wrap:wrap;gap:20px;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;width:220px;min-height:100px;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;padding:16px;transition:box-shadow .15s,transform .15s;display:flex}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card h3,.card strong{color:var(--color-primary-dark);word-break:break-word;margin-bottom:4px;display:block}.card p{color:var(--color-text-muted);word-break:break-word;margin:0 0 12px;font-size:14px}.card-actions{border-top:1px solid var(--color-border);gap:8px;padding-top:8px;display:flex}.card-actions button{flex:1;padding:6px 8px;font-size:13px}.choice-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:center;cursor:pointer;width:220px;box-shadow:var(--shadow-sm);padding:48px 40px;transition:box-shadow .15s,transform .15s}.choice-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary);transform:translateY(-3px)}.choice-card h2{margin-bottom:8px}.choice-card p{color:var(--color-text-muted);margin:0;font-size:14px}button{font-family:var(--font-family);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:14px;transition:background-color .15s,border-color .15s}button:hover{background:var(--color-primary-light);border-color:var(--color-primary)}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.btn-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-danger{background:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger);color:#fff}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],input[type=file],input:not([type]){font-family:var(--font-family);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}label{color:var(--color-text-muted);margin-top:10px;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.modal-overlay{z-index:100;background:#0f172a80;justify-content:center;align-items:flex-start;padding-top:40px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border-radius:var(--radius);width:520px;max-height:85vh;box-shadow:var(--shadow-md);padding:28px;overflow-y:auto}.modal-section{border-bottom:1px solid var(--color-border);margin-bottom:16px;padding-bottom:12px}.modal-section:last-of-type{border-bottom:none}.modal-section-title{color:var(--color-primary-dark);text-transform:uppercase;letter-spacing:.03em;font-size:13px;font-weight:700}table{border-collapse:collapse;width:100%;margin-top:8px}th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);padding:8px 6px;font-size:12px}td{border-bottom:1px solid var(--color-border);padding:10px 6px;font-size:14px}tr:hover td{background:var(--color-primary-light)}.alert-error{background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:14px}.alert-info{color:var(--color-text-muted);margin-bottom:16px;font-size:14px}.login-page{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--color-surface);border-radius:var(--radius);width:340px;box-shadow:var(--shadow-md);padding:40px}.login-box h1{text-align:center;margin-bottom:4px}.login-box .subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:24px;font-size:13px}.month-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.month-card{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;padding:14px;transition:border-color .15s}.month-card:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.month-card strong{color:var(--color-primary-dark)}.month-card p{color:var(--color-text-muted);margin:3px 0;font-size:12px}.modal.modal-wide{width:680px;padding:0}.detail-header{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));color:#fff;align-items:center;gap:16px;padding:24px 28px;display:flex}.detail-header h2{color:#fff;margin:0 0 4px}.detail-sub{opacity:.85;font-size:14px}.avatar{background:#fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:20px;font-weight:700;display:flex}.detail-body{padding:8px 28px}.detail-section{border-bottom:1px solid var(--color-border);padding:16px 0}.detail-section:last-child{border-bottom:none}.detail-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);margin-bottom:12px;font-size:12px;font-weight:700}.detail-grid{grid-template-columns:repeat(2,1fr);gap:14px 24px;display:grid}.detail-label{color:var(--color-text-muted);margin-bottom:2px;font-size:12px}.detail-value{word-break:break-word;font-size:14px;font-weight:500}.detail-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:16px 28px 24px;display:flex}.file-name{color:var(--color-text-muted);margin-left:8px;font-size:12px}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-success{color:#1e8e66;background:#e3f6ee}.badge-muted{color:var(--color-text-muted);background:#eef1f5}.modal.mm-modal{width:800px;max-width:95vw;padding:0}.mm-header{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));color:#fff;justify-content:space-between;align-items:flex-start;padding:22px 28px;display:flex}.mm-header h2{color:#fff;margin:0 0 2px}.mm-header-sub{opacity:.85;font-size:14px}.mm-close{color:#fff;background:#ffffff26;border-color:#0000;width:32px;height:32px;padding:0;font-size:18px;line-height:1}.mm-close:hover{background:#ffffff4d;border-color:#0000}.mm-body{padding:20px 28px 8px}.mm-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.mm-stat{background:var(--color-primary-light);border-radius:8px;padding:12px 14px}.mm-stat-label{color:var(--color-text-muted);margin-bottom:2px;font-size:12px}.mm-stat-value{color:var(--color-primary-dark);font-size:20px;font-weight:700}.mm-toolbar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.mm-toolbar h3{margin:0;font-size:16px}.mm-form{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:8px;margin-bottom:20px;padding:16px}.mm-form-grid{grid-template-columns:repeat(2,1fr);gap:4px 16px;display:grid}.mm-field label{margin-top:6px}.mm-field-full{grid-column:1/-1}.mm-file-name{color:var(--color-text-muted);margin:4px 0 0;font-size:12px}.mm-form-actions{gap:10px;margin-top:14px;display:flex}.mm-table-wrap{overflow-x:auto}.mm-table th.num,.mm-table td.num{text-align:right}.mm-table tr.mm-row{cursor:pointer}.mm-table tr.mm-edit-row:hover td{background:0 0}.mm-actions{justify-content:flex-end;gap:6px;display:flex}.mm-actions button{padding:4px 10px;font-size:12px}.mm-empty{text-align:center;color:var(--color-text-muted);padding:28px 0;font-size:14px}.mm-footer{justify-content:flex-end;padding:12px 28px 22px;display:flex}.modal.bd-modal{width:460px;padding:0}.bd-header{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));color:#fff;padding:22px 28px}.bd-header h2{color:#fff;margin:0 0 2px}.bd-sub{opacity:.85;font-size:14px}.bd-amounts{grid-template-columns:repeat(2,1fr);gap:12px;padding:20px 28px 4px;display:grid}.bd-amount{background:var(--color-primary-light);border-radius:8px;padding:12px 14px}.bd-amount-label{color:var(--color-text-muted);margin-bottom:2px;font-size:12px}.bd-amount-value{color:var(--color-primary-dark);font-size:20px;font-weight:700}.bd-body{padding:8px 28px}.bd-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:14px;display:flex}.bd-row:last-child{border-bottom:none}.bd-row-label{color:var(--color-text-muted)}.bd-row-value{text-align:right;font-weight:500}.bd-file-name{color:var(--color-text-muted);margin-right:8px;font-size:12px}.bd-footer{justify-content:flex-end;padding:12px 28px 24px;display:flex}.ra-box{border-radius:var(--radius);background:#fff7e6;border:1px solid #f3d48a;margin-bottom:24px;padding:14px 18px}.ra-header{justify-content:space-between;align-items:center;display:flex}.ra-header strong{color:#8a5a00}.ra-count{color:#8a5a00;background:#f3d48a;border-radius:999px;margin-left:8px;padding:2px 9px;font-size:12px;font-weight:700}.ra-list{margin:12px 0 0;padding:0;list-style:none}.ra-item{cursor:pointer;border-top:1px solid #f3d48a;align-items:center;gap:16px;padding:10px 6px;font-size:14px;display:flex}.ra-item:hover{background:#f3d48a40}.ra-name{flex:1;font-weight:600}.ra-date{color:var(--color-text-muted)}.ra-badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.ra-badge-soon{color:#8a5a00;background:#fde9b8}.ra-badge-reached{background:var(--color-danger-light);color:var(--color-danger)}.sn-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.sn-count{font-size:14px;font-weight:500}.sn-actions{gap:8px;display:flex}.sn-list{border:1px solid var(--color-border);border-radius:8px;max-height:220px;margin:12px 0 0;padding:0;list-style:none;overflow-y:auto}.sn-item{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.sn-item:last-child{border-bottom:none}.sn-name{word-break:break-word;flex:1;font-weight:500}.sn-date{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.sn-item button{padding:4px 10px;font-size:12px}.wt-monthbar{justify-content:center;align-items:center;gap:16px;margin-bottom:14px;display:flex}.wt-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.wt-stat{background:var(--color-primary-light);border-radius:8px;padding:12px 14px}.wt-stat-label{color:var(--color-text-muted);margin-bottom:2px;font-size:12px}.wt-stat-value{color:var(--color-primary-dark);font-size:20px;font-weight:700}.wt-block{margin-top:18px}.wt-block-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.wt-block-title{color:var(--color-text);font-size:13px;font-weight:700}.wt-form{border:1px solid var(--color-border);background:#f8fafc;border-radius:8px;margin-bottom:12px;padding:14px}.wt-form-row{flex-wrap:wrap;gap:12px;display:flex}.wt-form-row>div{flex:1;min-width:120px}.wt-days{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.wt-days label{align-items:center;gap:4px;margin:0;font-size:13px;font-weight:400;display:flex}.wt-days input{width:auto}.wt-actions{gap:8px;margin-top:12px;display:flex}.wt-list{border:1px solid var(--color-border);border-radius:8px;max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.wt-item{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:9px 12px;font-size:14px;display:flex}.wt-item:last-child{border-bottom:none}.wt-main{flex:1;font-weight:500}.wt-muted{color:var(--color-text-muted);font-size:12px}.wt-item button{padding:4px 10px;font-size:12px}.tr-presets{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.tr-presets button{padding:6px 12px;font-size:13px}.tr-dates{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.tr-dates>div{flex:1;min-width:140px}.tr-result{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.tr-stat{background:var(--color-primary-light);border-radius:8px;padding:12px 14px}.tr-stat-label{color:var(--color-text-muted);margin-bottom:2px;font-size:12px}.tr-stat-value{color:var(--color-primary-dark);font-size:20px;font-weight:700}:root[data-theme=teal]{--color-primary:#0f766e;--color-primary-dark:#115e59;--color-primary-light:#e3f4f1;--color-accent:#2563eb;--color-bg:#f2f8f7;--color-border:#d5e6e3;--color-surface-alt:#f6fbfa}:root[data-theme=indigo]{--color-primary:#4f46e5;--color-primary-dark:#3730a3;--color-primary-light:#eceafd;--color-accent:#0ea5e9;--color-bg:#f5f5fb;--color-border:#e0e0f0;--color-surface-alt:#f8f8fd;--radius:16px}:root[data-theme=slate]{--color-primary:#334155;--color-primary-dark:#1e293b;--color-primary-light:#e8ecf1;--color-accent:#0f766e;--color-bg:#f1f3f6;--color-border:#dde2e9;--color-surface-alt:#f6f7f9;--radius:6px}:root[data-style=soft]{--radius:18px;--shadow-sm:0 2px 10px #1f4e7814;--shadow-md:0 12px 32px #1f4e7829}:root[data-style=soft] button{border-radius:999px}:root[data-style=soft] input:not([type=radio]):not([type=checkbox]){border-radius:12px}:root[data-style=soft] .card,:root[data-style=soft] .choice-card{border-color:#0000}:root[data-style=soft] .card{padding:22px}:root[data-style=soft] .page-header{border-bottom:none}:root[data-style=soft] .month-card,:root[data-style=soft] .mm-stat,:root[data-style=soft] .wt-stat,:root[data-style=soft] .tr-stat,:root[data-style=soft] .bd-amount{border-radius:14px}:root[data-style=clinical]{--radius:4px;--shadow-sm:none;--shadow-md:0 2px 8px #0000001f}:root[data-style=clinical] body{font-size:14px}:root[data-style=clinical] h1{font-size:22px}:root[data-style=clinical] button,:root[data-style=clinical] input:not([type=radio]):not([type=checkbox]){border-radius:3px}:root[data-style=clinical] .page{max-width:1280px}:root[data-style=clinical] .card{border-color:#cbd5e1;padding:12px}:root[data-style=clinical] .card:hover,:root[data-style=clinical] .choice-card:hover{transform:none}:root[data-style=clinical] th,:root[data-style=clinical] tbody tr:nth-child(2n) td{background:var(--color-surface-alt,#f8fafc)}:root[data-style=clinical] tbody tr:hover td{background:var(--color-primary-light)}.mm-search-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mm-search-row input{max-width:280px}.mm-duplicate{background:#fff7e6;border:1px solid #f3d48a;border-radius:8px;margin-top:14px;padding:12px 14px;font-size:14px}.mm-duplicate strong{color:#8a5a00}.mm-duplicate p{margin:4px 0 0}.page-title{align-items:center;gap:16px;display:flex}.page-title h1{margin:0}.back-btn{padding:6px 12px;font-size:14px}
