@import"https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--page-plane: #100e0b;--surface-1: #1d1915;--surface-2: #262019;--text-primary: #f3ede0;--text-secondary: #b6ab99;--text-muted: #8b8072;--gridline: #332e27;--baseline: #4a4339;--border: rgba(243, 237, 224, .1);--series-1: #3987e5;--series-2: #199e70;--series-3: #c98500;--series-4: #008300;--series-5: #9085e9;--series-6: #e66767;--series-7: #d55181;--series-8: #d95926;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--font-heading: "Noto Serif JP", serif;--font-figure: "Space Grotesk", "Noto Sans JP", sans-serif;--font-body: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{position:relative;min-height:100vh;background-color:var(--page-plane);color:var(--text-primary);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(57,135,229,.08),transparent 60%),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(201,133,0,.06),transparent 60%)}h1,h2,h3{font-family:var(--font-heading);font-weight:600;color:var(--text-primary);margin:0}a{color:inherit}.app-shell{max-width:1280px;margin:0 auto;padding:0 24px 64px}.app-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:28px 0 24px;border-bottom:1px solid var(--border);margin-bottom:32px;flex-wrap:wrap}.app-nav__brand{display:flex;flex-direction:column;gap:2px}.app-nav__brand-name{font-family:var(--font-heading);font-size:20px;letter-spacing:.02em}.app-nav__brand-sub{font-size:12px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.app-nav__links{display:flex;gap:4px;flex-wrap:wrap}.app-nav__link{font-family:var(--font-figure);font-size:14px;font-weight:500;text-decoration:none;color:var(--text-secondary);padding:8px 14px;border-radius:6px;transition:background-color .15s ease,color .15s ease}.app-nav__link:hover{background-color:var(--surface-2);color:var(--text-primary)}.app-nav__link[aria-current=page]{color:var(--text-primary);background-color:var(--surface-1);border:1px solid var(--border)}.page-header{margin-bottom:24px}.page-header__title{font-size:26px;margin-bottom:6px}.page-header__caption{font-family:var(--font-figure);font-size:13px;color:var(--text-muted)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-tile{background-color:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:18px 20px;display:flex;flex-direction:column;gap:8px}.stat-tile__label{font-size:13px;color:var(--text-secondary)}.stat-tile__value{font-family:var(--font-figure);font-size:32px;font-weight:600;font-variant-numeric:proportional-nums;color:var(--text-primary);line-height:1.1}.stat-tile__delta{font-family:var(--font-figure);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:4px;width:fit-content}.stat-tile__delta[data-direction=up]{color:var(--status-good)}.stat-tile__delta[data-direction=down]{color:var(--status-critical)}.stat-tile__delta[data-direction=flat]{color:var(--text-muted)}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.chart-grid--single{grid-template-columns:1fr}.chart-card{background-color:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:20px 22px 16px;margin:0}.chart-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.chart-card__title{font-size:15px;font-weight:600;color:var(--text-primary)}.chart-card__caption{font-family:var(--font-figure);font-size:12px;color:var(--text-muted)}.chart-card__canvas-wrap{position:relative;width:100%}.chart-card__canvas-wrap--tall{height:280px}.chart-card__canvas-wrap--short{height:160px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.metric-card{background-color:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:16px 18px 12px}.metric-card__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:8px}.metric-card__label{font-size:13px;color:var(--text-secondary);line-height:1.4}.metric-card__status{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-figure);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.metric-card__status:before{content:"";width:7px;height:7px;border-radius:50%;background-color:currentColor}.metric-card__status[data-status=good]{color:var(--status-good);background-color:#0ca30c24}.metric-card__status[data-status=warning]{color:var(--status-warning);background-color:#fab21924}.metric-card__status[data-status=critical]{color:var(--status-critical);background-color:#d03b3b24}.metric-card__value{font-family:var(--font-figure);font-size:22px;font-weight:600;margin-bottom:2px}.metric-card__target{font-family:var(--font-figure);font-size:11px;color:var(--text-muted);margin-bottom:10px}.metric-card__canvas-wrap{height:90px;position:relative}.heatmap{display:grid;grid-template-columns:140px repeat(var(--heatmap-cols, 4),1fr);gap:4px;font-family:var(--font-figure)}.heatmap__corner,.heatmap__col-head,.heatmap__row-head{font-size:11px;color:var(--text-muted);display:flex;align-items:center}.heatmap__col-head{justify-content:center;padding-bottom:4px}.heatmap__row-head{padding-right:8px;font-family:var(--font-body);color:var(--text-secondary)}.heatmap__cell{aspect-ratio:1.6 / 1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-primary)}.heatmap__cell[data-status=good]{background-color:#0ca30c8c}.heatmap__cell[data-status=warning]{background-color:#fab2198c}.heatmap__cell[data-status=critical]{background-color:#d03b3b8c}.legend{display:flex;flex-wrap:wrap;gap:12px;font-family:var(--font-figure);font-size:12px;color:var(--text-secondary)}.legend__item{display:inline-flex;align-items:center;gap:6px}.legend__swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.rank-list__item{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px}.rank-list__index{font-family:var(--font-figure);font-size:12px;color:var(--text-muted)}.rank-list__label{font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-list__bar-track{grid-column:2 / span 2;height:6px;border-radius:3px;background-color:var(--gridline);overflow:hidden}.rank-list__bar-fill{height:100%;background-color:var(--series-1);border-radius:3px}.rank-list__value{grid-column:3;grid-row:1;font-family:var(--font-figure);font-size:13px;font-weight:600;color:var(--text-primary);justify-self:end}.post-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.post-item{padding:14px 16px;border-radius:8px;background-color:var(--surface-2);display:flex;flex-direction:column;gap:8px}.post-item__meta{display:flex;align-items:center;gap:8px;font-family:var(--font-figure);font-size:11px;color:var(--text-muted)}.post-item__platform{font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.post-item__summary{margin:0;font-size:13px;color:var(--text-primary);line-height:1.5}.post-item__stats{display:flex;gap:16px;font-family:var(--font-figure);font-size:12px;color:var(--text-secondary)}.post-item__stats strong{color:var(--text-primary);font-weight:600}.empty-state{padding:48px 24px;text-align:center;color:var(--text-muted);font-size:14px}.section-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin:32px 0 12px;letter-spacing:.02em}.section-title:first-of-type{margin-top:0}@media (max-width: 1023px){.kpi-row{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.heatmap{grid-template-columns:100px repeat(var(--heatmap-cols, 4),1fr)}}@media (max-width: 639px){.app-shell{padding:0 16px 48px}.kpi-row,.metric-grid{grid-template-columns:1fr}}.run-card{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:16px}.run-card__head{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.run-card__title{font-family:var(--font-heading);font-size:1.1rem;color:var(--text-primary)}.run-card__meta{font-size:.8rem;color:var(--text-muted)}.approval-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin-top:10px;background:var(--surface-2);border-radius:6px;text-decoration:none;color:var(--text-primary)}.approval-row:hover{outline:1px solid var(--baseline)}.approval-row__type{font-family:var(--font-figure);font-size:.7rem;letter-spacing:.08em;color:var(--text-secondary);border:1px solid var(--gridline);padding:2px 8px;border-radius:999px}.approval-row__title{flex:1 1 240px;font-size:.9rem}.approval-row__meta{font-size:.75rem;color:var(--text-muted)}.approval-row__sensitive{font-size:.75rem;color:var(--status-serious)}.status-badge{font-family:var(--font-figure);font-size:.72rem;padding:2px 10px;border-radius:999px;border:1px solid var(--gridline);color:var(--text-secondary)}.status-badge[data-status=approved]{color:var(--status-good);border-color:var(--status-good)}.status-badge[data-status=pending],.status-badge[data-status=running],.status-badge[data-status=waiting_approval],.status-badge[data-status=awaiting_revision],.status-badge[data-status=regenerating],.status-badge[data-status=on_hold]{color:var(--status-warning);border-color:var(--status-warning)}.status-badge[data-status=human_review]{color:var(--status-serious);border-color:var(--status-serious)}.status-badge[data-status=rejected],.status-badge[data-status=failed],.status-badge[data-status=aborted]{color:var(--status-critical);border-color:var(--status-critical)}.empty-note{color:var(--text-muted);padding:24px 0}.detail-card{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:18px 22px;margin-bottom:16px}.detail-card h2{font-family:var(--font-heading);font-size:1rem;color:var(--text-secondary);margin:0 0 12px;letter-spacing:.04em}.detail-card h3{font-family:var(--font-heading);font-size:.95rem;margin:16px 0 6px}.detail-card p{line-height:1.9;margin:6px 0}.detail-meta-row{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:.82rem;color:var(--text-secondary)}.check-item,.fc-item,.revision-item{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--gridline)}.check-item:last-child,.fc-item:last-child,.revision-item:last-child{border-bottom:none}.result-badge{font-family:var(--font-figure);font-size:.7rem;padding:1px 8px;border-radius:999px;border:1px solid var(--gridline);color:var(--text-secondary);white-space:nowrap}.result-badge[data-result=pass],.result-badge[data-result=confirmed]{color:var(--status-good);border-color:var(--status-good)}.result-badge[data-result=concern],.result-badge[data-result=not_found],.result-badge[data-result=minor]{color:var(--status-warning);border-color:var(--status-warning)}.result-badge[data-result=fail],.result-badge[data-result=mismatch],.result-badge[data-result=distorted],.result-badge[data-result=major]{color:var(--status-critical);border-color:var(--status-critical)}.fc-fixed-note{font-size:.75rem;color:var(--text-muted);margin-top:12px}.source-link{color:var(--series-1);word-break:break-all}.detail-card details pre{overflow-x:auto;background:var(--page-plane);padding:12px;border-radius:6px;font-size:.75rem;color:var(--text-secondary)}.login-card{max-width:420px;margin:48px auto}.login-input{width:100%;padding:10px 12px;margin:12px 0;border-radius:6px;border:1px solid var(--gridline);background:var(--page-plane);color:var(--text-primary)}.login-button{padding:8px 24px;border-radius:6px;border:1px solid var(--baseline);background:var(--surface-2);color:var(--text-primary);cursor:pointer}.login-button:hover{background:var(--surface-1)}
