:root{--bg-color:#f8fafc;--sidebar-bg:#fff;--card-bg:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--accent-blue:#3b82f6;--accent-green:#10b981;--accent-red:#ef4444;--border-color:#e2e8f0;--hover-bg:#f1f5f9;--glass-bg:#ffffffb3;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f}[data-theme=dark]{--bg-color:#0f172a;--sidebar-bg:#1e293b;--card-bg:#1e293b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--border-color:#334155;--hover-bg:#334155;--glass-bg:#1e293bb3}@media print{[data-theme=dark]{--bg-color:#fff;--sidebar-bg:#fff;--card-bg:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0}}*{box-sizing:border-box;margin:0;padding:0}button:focus-visible,[role=button]:focus-visible{outline-offset:2px!important;outline:3px solid #3b82f6!important}body{background-color:var(--bg-color);color:var(--text-primary);font-family:Inter,Noto Sans JP,sans-serif;line-height:1.6}.app-container{height:100vh;display:flex}.sidebar{background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);flex-direction:column;width:260px;padding:2rem 0;display:flex;box-shadow:2px 0 10px #00000005}.logo{color:var(--accent-blue);letter-spacing:-.5px;margin-bottom:3rem;padding:0 2rem;font-size:1.5rem;font-weight:800}.nav-links{flex-direction:column;list-style:none;display:flex}.nav-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;padding:1.5rem 1.5rem .5rem;font-size:.7rem;font-weight:800}.nav-item{color:var(--text-secondary);cursor:pointer;align-items:center;gap:1rem;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;transition:all .2s;display:flex;position:relative}.nav-item:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-item.active{color:var(--accent-blue);background:#3b82f60d;font-weight:700}.nav-item.active:before{content:"";background-color:var(--accent-blue);border-radius:0 4px 4px 0;width:4px;position:absolute;top:0;bottom:0;left:0}.nav-item svg{flex-shrink:0;width:18px;height:18px}.main-content{flex:1;padding:2rem;overflow-y:auto}.header{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem 1.5rem;display:flex}.header-left{white-space:nowrap;flex-shrink:0}.header h1{color:var(--text-primary);font-size:1.5rem;font-weight:700}.header-right{flex-shrink:0;align-items:center;gap:1.5rem;display:flex}.header-actions{white-space:nowrap;flex-shrink:0;align-items:center;gap:.75rem;display:flex}.login-screen{background:linear-gradient(135deg,#f5f7fa 0%,#c3cfe2 100%);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#fffc;border:1px solid #ffffff4d;border-radius:20px;width:90%;max-width:400px;padding:3rem;box-shadow:0 10px 30px #0000001a}.login-card h1{color:var(--primary-color);margin-bottom:.5rem;font-size:3rem;font-weight:800}.login-card p{color:#64748b;margin-bottom:2rem}.login-btn{cursor:pointer;background:var(--primary-color);color:#fff;border:none;border-radius:12px;width:100%;padding:1rem;font-size:1.1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.login-btn:hover,.login-btn:focus,.login-btn:focus-visible{color:#fff;opacity:1;background-color:#1d4ed8;box-shadow:0 4px 15px #1d4ed866}.login-btn:active{transform:scale(.98)}.login-footer{opacity:.7;margin-top:2rem;font-size:.8rem!important}.user-section{white-space:nowrap;flex-shrink:0;align-items:center;gap:1rem;display:flex}.user-profile{background:rgba(var(--primary-color-rgb), .05);border-radius:8px;flex-shrink:0;align-items:center;gap:.75rem;padding:.25rem .75rem;display:flex}.user-name{color:var(--text-primary);white-space:nowrap;font-weight:600}.logout-btn{border:1px solid rgba(var(--primary-color-rgb), .2);color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:.4rem .8rem;font-size:.8rem;font-weight:500;transition:all .2s}.logout-btn:hover{color:#e11d48;background:#fff1f2;border-color:#fecdd3}.user-profile:hover{background:rgba(var(--primary-color-rgb), .1);border-color:rgba(var(--primary-color-rgb), .2)}.user-avatar{background:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;font-weight:600;display:flex;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}.user-info{flex-direction:column;display:flex}.user-name{color:var(--text-color);font-size:.9rem;font-weight:600}.card{background:var(--sidebar-bg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;padding:1.5rem}.btn-primary{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.6rem 1.2rem;font-weight:600;transition:background .2s}.btn-primary:hover,.btn-primary:focus,.btn-primary:focus-visible{color:#fff!important;opacity:1!important;background:#2563eb!important}.table{border-collapse:collapse;width:100%;margin-top:1rem}.table th{text-align:left;border-bottom:2px solid var(--border-color);color:var(--text-secondary);padding:1rem;font-size:.875rem;font-weight:600}.table td{border-bottom:1px solid var(--border-color);padding:1rem;font-size:.9375rem}.table tr:hover{background-color:var(--hover-bg)}.badge{border-radius:99px;padding:.25rem .6rem;font-size:.75rem;font-weight:700}.badge-pass{color:var(--accent-green);background:#10b9811a;border:1px solid #10b98133}.badge-fail{color:var(--accent-red);background:#ef44441a;border:1px solid #ef444433}.badge-norun{color:var(--text-secondary);background:#9ea4b01a;border:1px solid #9ea4b033}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{width:90%;max-width:500px}.form-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:#fff;border-radius:6px;margin-top:.5rem;padding:.75rem;font-size:.9375rem}.form-input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #3b82f61a}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:.6rem 1.2rem}.btn-secondary:hover,.btn-secondary:focus,.btn-secondary:focus-visible{background:var(--border-color)!important;color:var(--text-primary)!important;border-color:var(--accent-blue)!important;opacity:1!important}
