:root{--color-slate-900:#0f172a;--color-slate-800:#1e293b;--color-slate-700:#334155;--color-slate-600:#475569;--color-slate-500:#64748b;--color-slate-400:#94a3b8;--color-slate-300:#cbd5e1;--color-slate-200:#e2e8f0;--color-slate-100:#f1f5f9;--color-slate-50:#f8fafc;--color-white:#fff;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-active:#1e40af;--color-accent-soft:#eff6ff;--color-accent-soft-border:#bfdbfe;--color-success-bg:#dcfce7;--color-success-text:#15803d;--color-success-border:#bbf7d0;--color-warning-bg:#fef3c7;--color-warning-text:#92400e;--color-warning-border:#fde68a;--color-danger-bg:#fee2e2;--color-danger-text:#b91c1c;--color-danger-border:#fecaca;--color-info-bg:#eff6ff;--color-info-text:#1e40af;--color-info-border:#bfdbfe;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 16px #0f172a14;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:20px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--focus-ring:0 0 0 3px #2563eb59;--color-border:var(--color-slate-200);--font-family-base:"Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, system-ui, sans-serif;--font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--content-max:1080px}*{box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--color-slate-800);background:var(--color-slate-50);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{color:var(--color-slate-900);font-weight:var(--font-weight-semibold);margin:0}h1{font-size:var(--font-size-lg)}h2{font-size:var(--font-size-md)}h3{font-size:var(--font-size-base)}p{margin:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{box-shadow:var(--focus-ring);outline:none}.login-screen,.error-screen{min-height:100vh;padding:var(--space-4);background:var(--color-slate-50);flex-direction:column;justify-content:center;align-items:center;display:flex}.login-card,.error-card{align-items:center;gap:var(--space-4);text-align:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-md);padding:var(--space-8) var(--space-6);flex-direction:column;display:flex}.login-card p{color:var(--color-slate-600);font-size:var(--font-size-sm);line-height:1.6}.center-message{justify-content:center;align-items:center;gap:var(--space-2);min-height:100vh;color:var(--color-slate-500);font-size:var(--font-size-sm);display:flex}.app-shell{min-height:100vh}.app-header{background:var(--color-white);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-header-inner{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);display:flex}.app-brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.app-logo-mark{color:var(--color-accent);flex-shrink:0}.app-brand h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-header-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.user-email{color:var(--color-slate-500);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.app-main{max-width:var(--content-max);padding:var(--space-6);margin:0 auto}.page-stack,.content-split{gap:var(--space-6);flex-direction:column;display:flex}.tab-nav{gap:var(--space-2);max-width:var(--content-max);padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-white);margin:0 auto;display:flex}.tab-nav button{appearance:none;color:var(--color-slate-500);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);padding:var(--space-3) var(--space-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab-nav button:hover{color:var(--color-slate-800)}.tab-nav .tab-active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--font-weight-semibold)}.card{gap:var(--space-4);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);flex-direction:column;display:flex}.form-row{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.form-stack{align-items:stretch;gap:var(--space-4);flex-direction:column;display:flex}.form-stack label{width:100%}.form-stack>button{align-self:flex-start}.form-row>.alert{flex-basis:100%}.form-row label{gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-slate-500);font-weight:var(--font-weight-medium);flex-direction:column;display:flex}input,select{font-family:inherit;font-size:var(--font-size-base);color:var(--color-slate-800);background:var(--color-white);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);height:36px;padding:0 var(--space-3);min-width:220px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover{border-color:var(--color-slate-400)}input:disabled,select:disabled{background:var(--color-slate-100);color:var(--color-slate-400);cursor:not-allowed}input[type=date]{min-width:160px}.card>select,.card>input{align-self:flex-start}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);height:36px;padding:0 var(--space-4);cursor:pointer;white-space:nowrap;border:1px solid #0000;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-primary:active:not(:disabled){background:var(--color-accent-active);border-color:var(--color-accent-active)}.btn-secondary{background:var(--color-white);border-color:var(--color-slate-300);color:var(--color-slate-700)}.btn-secondary:hover:not(:disabled){background:var(--color-slate-50);border-color:var(--color-slate-400)}.btn-secondary:active:not(:disabled){background:var(--color-slate-100)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:30px;padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn-lg{height:44px;padding:0 var(--space-6);font-size:var(--font-size-md)}.copy-btn.is-copied{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th,td{border:none;border-bottom:1px solid var(--color-border);padding:var(--space-3);text-align:left;font-size:var(--font-size-sm);vertical-align:middle}thead th{background:var(--color-slate-50);color:var(--color-slate-500);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}tbody tr:hover{background:var(--color-slate-50)}.code-inline{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-slate-700);background:var(--color-slate-100);border-radius:var(--radius-sm);padding:2px var(--space-2)}.links-table{table-layout:fixed;min-width:960px}.links-table th,.links-table td{overflow:hidden}.links-table col.col-code,.links-table col.col-media{width:12%}.links-table col.col-dest{width:18%}.links-table col.col-status,.links-table col.col-creator{width:12%}.links-table col.col-updated{width:15%}.links-table col.col-actions{width:19%}.audit-logs-table{table-layout:fixed;min-width:960px}.audit-logs-table th,.audit-logs-table td{overflow:hidden}.audit-logs-table col.col-ts{width:14%}.audit-logs-table col.col-actor{width:20%}.audit-logs-table col.col-role{width:8%}.audit-logs-table col.col-action{width:12%}.audit-logs-table col.col-target{width:20%}.audit-logs-table col.col-detail{width:26%}.cell-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.cell-nowrap{white-space:nowrap}.code-cell{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dest-cell{align-items:center;gap:var(--space-2);display:flex}.dest-cell .cell-truncate{flex:1;min-width:0}.dest-cell .btn{flex-shrink:0}.cell-actions{align-items:center;gap:var(--space-2);display:flex}tr.row-deleted{opacity:.55}.deleted-meta{margin-top:var(--space-1);color:var(--color-slate-500);font-size:var(--font-size-xs)}.checkbox-row{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-slate-600);display:flex}.checkbox-row input[type=checkbox]{width:auto;min-width:0;height:auto}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-3);white-space:nowrap;align-items:center;line-height:1.4;display:inline-flex}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-neutral{background:var(--color-slate-100);color:var(--color-slate-500)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}button.badge{cursor:pointer;border:1px solid #0000;font-family:inherit;transition:filter .15s,border-color .15s}button.badge.badge-success:hover:not(:disabled){border-color:var(--color-success-border)}button.badge.badge-neutral:hover:not(:disabled){border-color:var(--color-slate-300)}button.badge:disabled{opacity:.6;cursor:not-allowed}.alert{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);border:1px solid;margin:0;line-height:1.6}.alert ul{padding-left:var(--space-5);margin:0}.alert-error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.alert-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.alert-info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.spinner{border:2px solid var(--color-slate-200);border-top-color:var(--color-accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:22px;height:22px}@keyframes spin{to{transform:rotate(360deg)}}.loading-inline{align-items:center;gap:var(--space-2);color:var(--color-slate-500);font-size:var(--font-size-sm);padding:var(--space-2) 0;display:flex}.empty-state{color:var(--color-slate-500);font-size:var(--font-size-sm);background:var(--color-slate-50);border:1px dashed var(--color-slate-300);border-radius:var(--radius-md);padding:var(--space-5);text-align:center}.report-status{gap:var(--space-3);flex-direction:column;display:flex}.report-success-panel{justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);padding:var(--space-4);flex-wrap:wrap;display:flex}.report-success-panel p{color:var(--color-success-text);font-size:var(--font-size-sm)}@media (width>=1440px){:root{--content-max:1600px}.app-header-inner{max-width:var(--content-max);width:100%;margin:0 auto}.content-split:has(>.card:nth-child(2)){align-items:start;gap:var(--space-6);grid-template-columns:minmax(300px,340px) minmax(0,1fr);display:grid}}@media (width<=640px){.app-header-inner{row-gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.app-brand,.app-header-right{flex-basis:100%}.app-header-right{justify-content:flex-end}.tab-nav{padding:0 var(--space-4);overflow-x:auto}.app-main,.card{padding:var(--space-4)}input,select{width:100%;min-width:0}.form-row{gap:var(--space-3)}.form-row label{width:100%}.report-success-panel{text-align:center;flex-direction:column;align-items:stretch}}
