:root{--bg:#fafaf7;--surface:#fff;--surface-2:#f4f4f0;--text:#1f2328;--muted:#5b6168;--border:#e2e2dc;--border-strong:#c9c9c1;--accent:#1e5a3c;--accent-hover:#164530;--accent-weak:#e9f1eb;--danger:#a4262c;--danger-weak:#fbeceb;--warn:#7a4f00;--warn-weak:#fdf3e1;--info-weak:#eef2f6;--focus:#1e5a3c;--radius:8px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:16px;line-height:1.5}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-hover)}h1,h2,h3{margin:0;font-weight:600;line-height:1.25}h1{font-size:1.375rem}h2{font-size:1.125rem}h3{font-size:1rem}p{margin:0 0 .75rem}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--surface);z-index:100;padding:8px 12px;position:absolute;top:8px;left:-9999px}.skip-link:focus{left:8px}.app-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;position:sticky;top:0}.app-header-inner{align-items:center;gap:24px;max-width:1200px;min-height:56px;margin:0 auto;padding:0 16px;display:flex}.brand{color:var(--text);letter-spacing:-.01em;white-space:nowrap;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.main-nav{scrollbar-width:none;flex:1;gap:4px;display:flex;overflow-x:auto}.main-nav a{color:var(--muted);white-space:nowrap;border-radius:6px;padding:8px 10px;font-size:.95rem;text-decoration:none}.main-nav a:hover{color:var(--text);background:var(--surface-2)}.main-nav a[aria-current=page]{color:var(--accent);background:var(--accent-weak);font-weight:600}.header-user{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:.875rem;display:flex}main{max-width:1200px;margin:0 auto;padding:20px 16px 64px}@media (max-width:720px){.app-header-inner{flex-wrap:wrap;gap:0 12px;padding-top:6px}.brand{flex:1}.main-nav{flex-basis:100%;order:3;margin:0 -16px;padding:0 12px 6px}.header-user .user-email{display:none}main{padding-top:16px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head .sub{color:var(--muted);margin-top:2px;font-size:.9rem}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--border-strong);background:var(--surface);min-height:40px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);color:var(--text)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);color:#fff}.btn-danger{color:var(--danger);border-color:#e3b5b3}.btn-danger:hover{background:var(--danger-weak);color:var(--danger)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{color:#fff;background:#861e23}.btn-ghost{color:var(--accent);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--accent-weak);color:var(--accent-hover)}.btn-sm{min-height:34px;padding:4px 10px;font-size:.875rem}.linkish{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.panel-head h2{font-size:1.05rem}.muted{color:var(--muted)}.small{font-size:.875rem}.stack>*+*{margin-top:12px}.notice{border:1px solid;border-radius:6px;margin:0 0 12px;padding:10px 12px;font-size:.95rem}.notice-error{background:var(--danger-weak);color:#6f1a1e;border-color:#eac2c0}.notice-warn{background:var(--warn-weak);color:#5c3b00;border-color:#f0d7a8}.notice-ok{background:var(--accent-weak);color:#163f2b;border-color:#c4dccb}.notice-info{background:var(--info-weak);color:#2a3440;border-color:#d5dde6}.badge{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:500;display:inline-block}.badge-EVALUATION{color:#2f3c4a;background:#eef2f6;border-color:#d8e0e8}.badge-PLANNING{color:#5c3b00;background:#fdf3e1;border-color:#f0dcb4}.badge-POSTOP_FOLLOWUP{background:var(--accent-weak);color:#163f2b;border-color:#c4dccb}.badge-FOLLOWUP_DONE{color:#3d4247;background:#f1f1ee;border-color:#dcdcd5}.badge-ARCHIVED{color:#5b6168;background:#f1f1ee;border-color:#dcdcd5}.badge-alert{background:var(--danger-weak);color:#7a1d22;border-color:#eac2c0}.badge-warn{background:var(--warn-weak);color:#5c3b00;border-color:#f0dcb4}.tag{color:var(--muted);background:var(--surface-2);border-radius:4px;margin:2px 4px 0 0;padding:0 6px;font-size:.8rem;display:inline-block}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}table.list{border-collapse:collapse;width:100%;font-size:.95rem}table.list th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);background:#fcfcfa;padding:10px 12px;font-size:.8rem;font-weight:600}table.list td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}table.list tr:last-child td{border-bottom:0}table.list tbody tr:hover{background:#fbfbf8}table.list .primary-link{color:var(--text);font-weight:600;text-decoration:none}table.list .primary-link:hover{color:var(--accent);text-decoration:underline}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875rem}.nowrap{white-space:nowrap}@media (max-width:760px){table.list thead{display:none}table.list,table.list tbody,table.list tr,table.list td{width:100%;display:block}table.list tr{border-bottom:1px solid var(--border);padding:12px 14px}table.list tr:last-child{border-bottom:0}table.list td{border:0;padding:2px 0}table.list td[data-label]:not(.cell-main):before{content:attr(data-label) ": ";color:var(--muted);font-size:.85rem}table.list td.cell-main{padding-bottom:4px}table.list td.hide-mobile{display:none}}.empty{text-align:center;color:var(--muted);padding:32px 16px}.empty p{margin-bottom:12px}.pager{justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;font-size:.9rem;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 16px;display:grid}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field.wide{grid-column:1/-1}.field label,.field legend{color:var(--text);font-size:.9rem;font-weight:500}.field .req{color:var(--danger);margin-left:2px}.field .hint{color:var(--muted);font-size:.8rem}.field .err{color:var(--danger);font-size:.85rem;font-weight:500}.input-row{align-items:center;gap:6px;display:flex}.input-row .unit{color:var(--muted);font-size:.9rem}input[type=text],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=number],input[type=search],select,textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:40px;color:var(--text);font:inherit;border-radius:6px;padding:8px 10px;font-size:1rem}textarea{resize:vertical;min-height:84px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--accent);outline:3px solid #1e5a3c59}[aria-invalid=true]{border-color:var(--danger)!important}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--accent);margin:0}.check{align-items:center;gap:8px;min-height:32px;font-size:.95rem;display:flex}fieldset{border:0;min-width:0;margin:0;padding:0}.checks{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 16px;display:grid}details.more{border-top:1px dashed var(--border);margin-top:14px;padding-top:10px}details.more>summary{cursor:pointer;color:var(--accent);padding:4px 0;font-size:.95rem;font-weight:500;list-style-position:inside}details.more[open]>summary{margin-bottom:12px}.form-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.form-status{color:var(--muted);font-size:.9rem}dl.facts{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px;margin:0;display:grid}dl.facts>div{min-width:0}dl.facts dt{color:var(--muted);font-size:.8rem}dl.facts dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}dl.facts .wide{grid-column:1/-1}.case-title{flex-wrap:wrap;align-items:baseline;gap:8px 12px;display:flex}.subnav{scrollbar-width:thin;gap:4px;margin:0 0 16px;padding-bottom:2px;display:flex;overflow-x:auto}.subnav a{color:var(--muted);border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:6px;padding:6px 10px;font-size:.9rem;text-decoration:none}.subnav a:hover{color:var(--accent);border-color:var(--accent)}.record{border:1px solid var(--border);background:#fdfdfb;border-radius:6px;padding:12px}.record+.record{margin-top:10px}.record-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.record-head .title{font-weight:600}ol.timeline{border-left:2px solid var(--border);margin:0;padding:0 0 0 18px;list-style:none}ol.timeline>li{padding:0 0 16px 14px;position:relative}ol.timeline>li:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-25px}ol.timeline>li.ev-surgery:before{background:var(--accent)}ol.timeline>li.ev-complication:before{border-color:var(--danger)}ol.timeline>li.ev-imaging:before{border-color:#5b6168}.tl-date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.tl-event{font-size:.95rem}.doc-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.doc{border:1px solid var(--border);background:var(--surface);border-radius:6px;flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex}.doc-thumb{background:var(--surface-2);height:120px;color:var(--muted);border-radius:4px;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.doc-thumb img{object-fit:contain;max-width:100%;max-height:100%}.doc-name{overflow-wrap:anywhere;font-size:.9rem;font-weight:500}progress{width:100%;height:8px;accent-color:var(--accent)}dialog.viewer{border:1px solid var(--border);border-radius:var(--radius);width:min(1000px,96vw);height:min(90vh,900px);padding:0}dialog.viewer::backdrop{background:#14181c8c}.viewer-bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.viewer-body{background:#2a2d31;justify-content:center;align-items:center;height:calc(100% - 54px);display:flex}.viewer-body img{object-fit:contain;max-width:100%;max-height:100%}.viewer-body iframe{background:#fff;border:0;width:100%;height:100%}.connection-banner{z-index:50;color:#fff;text-align:center;background:#3b2a00;padding:10px 16px;font-size:.95rem;position:fixed;bottom:0;left:0;right:0}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;padding:28px 24px}.auth-card h1{margin-bottom:4px}.auth-card .field+.field{margin-top:14px}.history{font-size:.875rem}.history li{margin-bottom:8px}.history .chg{color:var(--muted)}details.inline>summary{cursor:pointer;color:var(--muted);font-size:.875rem}.filters{margin-bottom:12px}.search-row{gap:8px;display:flex}.search-row input{flex:1}.confirm-box{background:var(--danger-weak);border:1px solid #eac2c0;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;font-size:.9rem;display:inline-flex}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:900px){.two-col{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
