@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap";
:root{--bg:#f5f6f8;--surface:#fff;--surface-soft:#fbfcfd;--primary:#16233a;--text-body:#243349;--text-secondary:#52627a;--muted:#8a97a8;--faint:#9aa6b4;--border:#e7e9ee;--border-soft:#eef0f3;--border-input:#e1e5eb;--divider:#eaecf0;--accent:#f26522;--accent-hover:#b03d08;--accent-link:#d14e12;--accent-soft:#fff3ec;--accent-soft-border:#fbd9c4;--success:#1f9e6a;--success-soft:#eaf7f1;--success-soft-border:#bee8d3;--success-dark:#137a50;--danger:#e0532b;--danger-soft:#fdede6;--info:#2c74d6;--info-soft:#e8f0fc;--teal-soft:var(--accent-soft);--radius-card:16px;--radius-md:11px;--radius-sm:8px;--shadow-card:0 1px 2px #10233a0a, 0 10px 30px #10233a0d;--shadow-btn:0 3px 10px #f2652247;--font-body:"IBM Plex Sans JP", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;padding:0}a{color:var(--accent-link);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit}textarea,input,select{color:var(--text-body);font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#d9dde4;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#c3c9d3}.mono{font-family:var(--font-mono)}.topbar{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#ffffffeb;justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px #10233a05}.brand{color:var(--primary);letter-spacing:.01em;align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.brand:before{content:"";background-image:url(/helene-logo.png);background-position:0;background-repeat:no-repeat;background-size:auto 100%;border-radius:50%;flex-shrink:0;width:32px;height:32px;display:inline-block}.topbar-right{color:var(--text-secondary);align-items:center;gap:16px;font-size:13px;display:flex}.topbar-right a{color:var(--text-secondary);font-size:12px;text-decoration:underline;transition:color .16s}.topbar-right a:hover{color:var(--accent)}.logout-link{color:var(--text-secondary);font-size:11.5px;text-decoration:underline;transition:color .16s}.logout-link:hover{color:var(--accent)}.gws-chip{background:var(--surface-soft);border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;align-items:center;gap:8px;padding:5px 12px;display:flex}.btn-teal{background:var(--info);color:#fff}.btn-teal:hover{filter:brightness(1.08)}.main{max-width:1320px;margin:0 auto;padding:24px 28px 60px}.main-wide{max-width:1680px;margin:0 auto;padding:24px 28px 60px}.row2{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.board4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.board{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;display:grid}@media (max-width:1100px){.row2{grid-template-columns:1fr}.board4{grid-template-columns:1fr 1fr}}@media (max-width:720px){.board4{grid-template-columns:1fr}.main{padding:16px}}.panel,.col-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px}.panel-title,.col-head-title{color:var(--primary);border-bottom:1px solid var(--border-soft);margin-bottom:14px;padding-bottom:10px;font-size:14.5px;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);width:360px;padding:32px}.center-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.btn,.btn-sm{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:7px;font-family:inherit;font-weight:600;transition:all .16s;display:inline-flex}.btn{background:var(--accent);color:#fff;width:100%;box-shadow:var(--shadow-btn);padding:11px 18px;font-size:14px}.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn-sm{padding:8px 16px;font-size:13px}.btn-ghost{background:var(--surface);color:var(--primary);border:1px solid var(--border-input)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost:disabled{color:var(--faint);cursor:not-allowed;border-color:var(--border)}.btn-sign{background:var(--accent);color:#fff;box-shadow:var(--shadow-btn)}.btn-sign:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn-sign:disabled{background:var(--success-soft);color:#8dc5ac;box-shadow:none;cursor:not-allowed}.link-btn{color:var(--accent-link);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:12.5px;font-weight:600}.link-btn:hover{color:var(--accent-hover);text-decoration:underline}.back-btn{background:var(--surface);border:1px solid var(--border);color:var(--primary);border-radius:9px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .16s;display:inline-flex;box-shadow:0 1px 2px #10233a0a}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.karte-topline{margin-bottom:16px}.karte-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:20px;padding:20px 24px;display:flex}.karte-no{background:#f0f2f6;border-radius:8px;flex-direction:column;padding:5px 10px;line-height:1;display:inline-flex}.karte-no-label{letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:2px;font-size:9px}.karte-no-val{font-family:var(--font-mono);color:var(--primary);font-size:15px;font-weight:600}.avatar-photo{background:var(--primary);color:#fff;border-radius:14px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;font-size:26px;font-weight:700;display:flex;box-shadow:0 6px 16px #10233a2e}.patient-id-block{flex-direction:column;gap:6px;display:flex}.patient-names{align-items:baseline;gap:10px;display:flex}.patient-kanji{color:var(--primary);font-size:20px;font-weight:700}.patient-kana{color:var(--muted);font-size:13px;font-family:var(--font-mono);letter-spacing:.04em}.patient-meta{color:var(--text-secondary);align-items:center;gap:14px;font-size:13px;display:flex}.agency-block{text-align:right;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-left:auto;font-size:10px}.agency-name{color:var(--accent);text-transform:none;letter-spacing:0;margin-top:4px;font-size:14px;font-weight:700}.hx-item{border-radius:10px;padding:10px 10px 10px 20px;transition:background .14s;position:relative}.hx-item:hover{background:var(--surface-soft)}.hx-date{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px;font-weight:500}.hx-treat{color:var(--text-secondary);white-space:pre-line;margin-top:3px;font-size:12.5px;line-height:1.5}.soap-toolbar{gap:10px;margin-bottom:14px;display:flex}.soap-block{margin-bottom:4px}.soap-block label{letter-spacing:.06em;color:var(--accent);margin:12px 0 5px;font-size:11px;font-weight:700;display:block}.soap-block textarea{resize:vertical;border:1px solid var(--border-input);background:var(--surface-soft);border-radius:10px;outline:none;width:100%;min-height:64px;padding:10px 12px;font-size:13px;line-height:1.65;transition:border-color .16s,box-shadow .16s}.soap-block textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #f265221f}.soap-block textarea:disabled{background:var(--border-soft);color:var(--muted)}.sign-banner{background:var(--success-soft);border:1px solid var(--success-soft-border);color:var(--success-dark);border-radius:11px;align-items:center;gap:10px;margin-top:14px;padding:11px 14px;font-size:12.5px;font-weight:700;display:flex}.img-item{border:1px solid var(--border-soft);border-radius:11px;flex-direction:column;gap:4px;margin-bottom:10px;padding:9px;transition:all .16s;display:flex}.img-item:hover{border-color:var(--accent);box-shadow:0 4px 12px #10233a12}.upload-btn{background:var(--border-soft);width:100%;color:var(--muted);border:1px solid var(--border);cursor:not-allowed;border-radius:9px;padding:10px;font-size:13px;font-weight:600}.upload-area{background:var(--surface-soft);border:1px dashed #d9dde4;border-radius:12px;margin-top:10px;padding:16px}.upload-area input[type=file]{font-size:12px}.upload-area textarea{resize:vertical;border:1px solid var(--border-input);background:var(--surface);border-radius:11px;outline:none;width:100%;padding:11px 13px;font-size:13px;line-height:1.6}.upload-area textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f265221f}.lab-item{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:9px 4px;font-size:13px;display:flex}.lab-item:last-of-type{border-bottom:none}.lab-dot{border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.lab-val{font-family:var(--font-mono);color:var(--success);font-weight:600}.lab-val.abn{color:var(--danger)}.lab-table{border-collapse:collapse;width:100%;font-size:12.5px}.lab-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--muted);padding:8px;font-weight:600}.lab-table td{border-bottom:1px solid var(--border-soft);padding:8px}.lab-table td.abn{color:var(--danger);font-weight:600}.nurse-textarea{resize:vertical;border:1px solid var(--border-input);background:var(--surface-soft);width:100%;min-height:96px;color:var(--text-body);border-radius:11px;outline:none;padding:12px 14px;font-size:13.5px;line-height:1.7;transition:border-color .16s,box-shadow .16s}.nurse-textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #f265221f}.nurse-list{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:1.7}.modal-overlay{z-index:100;background:#10233a73;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.show{display:flex}.modal-box{background:var(--surface);border-radius:var(--radius-card);width:100%;max-width:720px;max-height:80vh;padding:24px;overflow-y:auto;box-shadow:0 20px 60px #10233a40}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-title{color:var(--primary);font-size:15px;font-weight:700}.doctor-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.doctor-head{background:var(--surface-soft);border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.doctor-name{color:var(--primary);font-size:14px;font-weight:700}.doctor-count{color:var(--accent);font-size:12px;font-family:var(--font-mono)}.patient-list{padding:8px 12px}.patient-row{border-bottom:1px solid var(--border-soft);color:var(--text-body);align-items:center;gap:12px;padding:10px 6px;transition:background .14s;display:flex}.patient-row:last-child{border-bottom:none}.patient-row:hover{background:var(--surface-soft)}.patient-time{font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;width:46px;font-size:12.5px}.patient-name{font-size:13.5px;font-weight:500}.empty-note{color:var(--faint);padding:16px 6px;font-size:12.5px}.reservation-calendar{background:var(--surface);box-shadow:var(--shadow-card)}
