:root{--bg: #15130f;--surface: #1c1a15;--surface-alt: #241f18;--border: #38311f;--text: #ede7d9;--text-muted: #a89d87;--text-faint: #766c5b;--accent: #c9a15a;--accent-strong: #e0ba74;--accent-soft: rgba(201, 161, 90, .12);--tone-positive: #5cb583;--tone-positive-soft: rgba(92, 181, 131, .14);--tone-negative: #dd7860;--tone-negative-soft: rgba(221, 120, 96, .14);--tone-warning: #e0993e;--tone-warning-soft: rgba(224, 153, 62, .14);--tone-neutral: #9089a0;--tone-neutral-soft: rgba(144, 137, 160, .14);--tone-accent: #7fa8c9;--tone-accent-soft: rgba(127, 168, 201, .14);--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--font-display: "Shippori Mincho", "Hiragino Mincho ProN", serif;--font-body: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", monospace;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--bg);background-image:radial-gradient(ellipse 900px 500px at 50% -10%,rgba(201,161,90,.06),transparent);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;margin:0 0 .35rem}h1{font-size:1.6rem}h2{font-size:1.05rem;font-weight:600}a{color:var(--accent-strong)}.app-header{border-bottom:1px solid var(--border);background:#1c1a15d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}.app-header-inner{max-width:1180px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:.06em;color:var(--text);white-space:nowrap}.brand-tag{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);letter-spacing:.12em;border:1px solid var(--border);border-radius:999px;padding:.15rem .5rem}.main-nav{display:flex;gap:.15rem;flex-wrap:wrap;flex:1}.nav-link{color:var(--text-muted);text-decoration:none;padding:.5rem .85rem;border-radius:var(--radius-sm);font-size:.86rem;letter-spacing:.03em;border-bottom:2px solid transparent}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--accent-strong);border-bottom-color:var(--accent)}.user-menu{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--text-faint);font-family:var(--font-mono)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:.4rem .75rem;cursor:pointer;font-size:.82rem;font-family:var(--font-body)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-strong)}.app-main{max-width:1180px;margin:0 auto;padding:2.25rem 1.5rem 4rem}.page-subtitle{color:var(--text-muted);margin-top:-.1rem;margin-bottom:1.75rem;font-size:.92rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:2.5rem}.stat-card{background:var(--surface);padding:1.5rem 1.4rem;position:relative}.stat-card:before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--accent)}.stat-card-warning:before{background:var(--tone-warning)}.stat-label{color:var(--text-muted);font-size:.78rem;letter-spacing:.02em;margin-bottom:.7rem}.stat-value{font-family:var(--font-mono);font-size:1.9rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text)}.stat-card-warning .stat-value{color:var(--tone-warning)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface);background-image:linear-gradient(to right,var(--surface) 30%,rgba(0,0,0,0)),linear-gradient(to left,var(--surface) 30%,rgba(0,0,0,0)),linear-gradient(to right,var(--accent-soft),rgba(0,0,0,0)),linear-gradient(to left,var(--accent-soft),rgba(0,0,0,0));background-repeat:no-repeat;background-position:0 0,100% 0,0 0,100% 0;background-size:48px 100%,48px 100%,20px 100%,20px 100%;background-attachment:local,local,scroll,scroll}.report-content-box{margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.25rem 1.5rem;overflow-x:auto}.report-content-pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.9rem;line-height:1.7;margin:0}.data-table{width:100%;border-collapse:collapse;font-size:.87rem}.data-table th,.data-table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td:first-child,.data-table th:first-child{font-family:var(--font-mono);color:var(--text-muted);font-size:.8rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-alt)}.data-table th{background:transparent;color:var(--text-faint);font-weight:500;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:999px;background:var(--tone-neutral-soft);border:1px solid transparent;color:var(--tone-neutral);font-size:.76rem;font-weight:500;white-space:nowrap}.badge:before{content:"";width:.4em;height:.4em;border-radius:50%;background:currentColor;flex-shrink:0}.badge.tone-positive{background:var(--tone-positive-soft);color:var(--tone-positive)}.badge.tone-negative{background:var(--tone-negative-soft);color:var(--tone-negative)}.badge.tone-warning,.badge-warning{background:var(--tone-warning-soft);color:var(--tone-warning)}.badge.tone-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge.tone-neutral{background:var(--tone-neutral-soft);color:var(--tone-neutral)}.notes-panel{margin-top:2.5rem}.notes-panel-title{font-size:.95rem;color:var(--text-muted);margin-bottom:1rem;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.notes-card{background:var(--surface);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:.9rem}.notes-card-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.notes-card-name{font-weight:600}.notes-card-body{margin:0;white-space:pre-wrap;font-family:inherit;font-size:.88rem;line-height:1.75;color:var(--text-muted)}.empty-message,.error-message{color:var(--text-faint)}.error-message{color:var(--tone-negative)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg);background-image:radial-gradient(ellipse 900px 600px at 50% 30%,rgba(201,161,90,.08),transparent)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1rem;box-shadow:0 30px 60px #00000059}.login-card h1{font-size:1.5rem;letter-spacing:.04em}.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .7rem;color:var(--text);font-size:.95rem;font-family:var(--font-body)}.login-card input:focus{outline:none;border-color:var(--accent)}.login-card button{margin-top:.5rem;background:var(--accent);border:none;border-radius:var(--radius-sm);padding:.65rem;color:#1c1a15;font-weight:700;font-family:var(--font-body);cursor:pointer;letter-spacing:.03em}.login-card button:hover{background:var(--accent-strong)}.login-card button:disabled{opacity:.6;cursor:default}@media (max-width: 640px){.app-header-inner{flex-direction:column;align-items:flex-start}.table-wrap{overflow-x:visible;border:none;background-image:none;background-color:transparent}.data-table{display:block}.data-table thead{display:none}.data-table tbody{display:block}.data-table tr{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;margin-bottom:.75rem}.data-table tr:hover{background:var(--surface)}.data-table td{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem 0;border-bottom:1px dashed var(--border);white-space:normal;font-family:var(--font-body);color:var(--text);font-size:.85rem}.data-table td:last-child{border-bottom:none}.data-table td:before{content:attr(data-label);color:var(--text-faint);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}}
