:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;--font-heading: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "SF Pro Display", sans-serif;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--dur: .22s;--ease: cubic-bezier(.32, .72, 0, 1)}:root,:root[data-theme=light]{color-scheme:light;--bg: #f5f5f7;--bg-gradient: radial-gradient(1200px 600px at 50% -10%, rgba(0, 122, 255, .08), transparent 60%);--surface: rgba(255, 255, 255, .75);--surface-solid: #ffffff;--surface-2: rgba(0, 0, 0, .04);--glass-border: rgba(255, 255, 255, .5);--hairline: rgba(0, 0, 0, .08);--text: #1d1d1f;--text-2: #515154;--text-3: #86868b;--accent: #007aff;--accent-soft: rgba(0, 122, 255, .1);--accent-2: #5ac8fa;--green: #34c759;--green-soft: rgba(52, 199, 89, .12);--red: #ff3b30;--red-soft: rgba(255, 59, 48, .1);--orange: #ff9500;--orange-soft: rgba(255, 149, 0, .1);--purple: #af52de;--purple-soft: rgba(175, 82, 222, .1);--teal: #30b0c7;--critical: #8b0000;--critical-soft: rgba(139, 0, 0, .1);--high: #ff3b30;--high-soft: rgba(255, 59, 48, .1);--medium: #ff9500;--medium-soft: rgba(255, 149, 0, .1);--low: #30b0c7;--low-soft: rgba(48, 176, 199, .1);--shadow-card: 0 4px 30px rgba(0, 0, 0, .03);--shadow-float: 0 12px 32px rgba(0, 0, 0, .14);--tabbar-bg: rgba(245, 245, 247, .78);--sheet-bg: rgba(250, 250, 252, .92);--sidebar-bg: rgba(255, 255, 255, .65)}:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--bg-gradient: radial-gradient(1200px 600px at 50% -10%, rgba(10, 132, 255, .15), transparent 60%);--surface: rgba(28, 28, 30, .68);--surface-solid: #1c1c1e;--surface-2: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .09);--hairline: rgba(255, 255, 255, .1);--text: #f5f5f7;--text-2: #aeaeb2;--text-3: #8e8e93;--accent: #0a84ff;--accent-soft: rgba(10, 132, 255, .16);--accent-2: #64d2ff;--green: #30d158;--green-soft: rgba(48, 209, 88, .16);--red: #ff453a;--red-soft: rgba(255, 69, 58, .14);--orange: #ff9f0a;--orange-soft: rgba(255, 159, 10, .14);--purple: #bf5af2;--purple-soft: rgba(191, 90, 242, .14);--teal: #40c8e0;--critical: #ff3b30;--critical-soft: rgba(255, 59, 48, .15);--high: #ff9f0a;--high-soft: rgba(255, 159, 10, .15);--medium: #bf5af2;--medium-soft: rgba(191, 90, 242, .15);--low: #0a84ff;--low-soft: rgba(10, 132, 255, .15);--shadow-card: 0 4px 30px rgba(0, 0, 0, .35);--shadow-float: 0 12px 32px rgba(0, 0, 0, .55);--tabbar-bg: rgba(18, 18, 20, .75);--sheet-bg: rgba(24, 24, 26, .94);--sidebar-bg: rgba(18, 18, 20, .85)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-gradient);pointer-events:none;z-index:0}#root{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;outline:none}input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.02em}.glass{background:var(--surface);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border:1px solid var(--glass-border);box-shadow:var(--shadow-card);border-radius:var(--radius-lg);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.glass-solid{background:var(--surface-solid);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-weight:600;font-size:14px;transition:transform .12s var(--ease),opacity .12s,background-color var(--dur)}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 90%,#fff)}.btn-soft{background:var(--accent-soft);color:var(--accent)}.btn-soft:hover{background:color-mix(in srgb,var(--accent-soft) 85%,var(--accent))}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--hairline)}.btn-secondary:hover{background:var(--surface)}.btn-danger{background:var(--red-soft);color:var(--red);border:1.5px solid transparent}.btn-danger:hover{background:var(--red);color:#fff}.btn-block{width:100%}.btn-sm{padding:8px 14px;font-size:13px;border-radius:10px}.switch{position:relative;width:51px;height:31px;border-radius:16px;background:var(--surface-2);border:1px solid var(--hairline);transition:background-color var(--dur) var(--ease);flex-shrink:0;cursor:pointer}.switch[data-on=true]{background:var(--green);border-color:transparent}.switch:after{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;transition:transform var(--dur) var(--ease)}.switch[data-on=true]:after{transform:translate(20px)}.segmented{display:flex;background:var(--surface-2);border-radius:var(--radius-sm);padding:2px;border:1px solid var(--hairline)}.segmented button{flex:1;padding:7px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text-2);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease);text-align:center}.segmented button.active{background:var(--surface-solid);color:var(--text);box-shadow:0 1px 4px #0000001a}.app-layout{display:flex;min-height:100vh}.sidebar{width:280px;background:var(--sidebar-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-right:1px solid var(--hairline);padding:24px 20px;display:flex;flex-direction:column;gap:24px;position:fixed;height:100vh;overflow-y:auto;z-index:50;transition:transform .3s var(--ease)}.main-content{margin-left:280px;flex:1;padding:32px 40px 100px;max-width:1200px;width:100%}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:none;justify-content:center;padding:0 16px calc(var(--safe-bottom) + 10px);pointer-events:none}.tabbar-inner{pointer-events:auto;display:flex;gap:4px;width:100%;max-width:500px;padding:6px;border-radius:28px;background:var(--tabbar-bg);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border:1px solid var(--glass-border);box-shadow:var(--shadow-float)}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:22px;color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.02em;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.tab-btn svg{width:22px;height:22px}.tab-btn.active{color:var(--accent);background:var(--accent-soft)}.field{margin-bottom:16px}.field label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px}.input-field{width:100%;padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-2);color:var(--text);font-size:15px;outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.date-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:4px}.page-title{font-size:32px;font-weight:800;color:var(--text);margin-bottom:24px}.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid transparent}.badge-critical{background:var(--critical-soft);color:var(--critical)}.badge-high{background:var(--high-soft);color:var(--high)}.badge-medium{background:var(--medium-soft);color:var(--medium)}.badge-low{background:var(--low-soft);color:var(--low)}.badge-info{background:var(--accent-soft);color:var(--accent)}.score-circle-container{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.score-circle-bg{fill:none;stroke:var(--surface-2)}.score-circle-bar{fill:none;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}.score-grade{position:absolute;font-family:var(--font-heading);font-size:48px;font-weight:800;letter-spacing:-.04em;display:flex;flex-direction:column;align-items:center;line-height:1}.score-subtitle{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;background:var(--sheet-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-left:1px solid var(--hairline);box-shadow:var(--shadow-float);z-index:100;transform:translate(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer-header{padding:24px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center}.drawer-content{flex:1;overflow-y:auto;padding:24px}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding:20px 20px 100px}.tabbar{display:flex}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99;animation:fadeIn .2s var(--ease)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:101;max-width:560px;margin:0 auto;max-height:88dvh;overflow-y:auto;background:var(--sheet-bg);-webkit-backdrop-filter:blur(30px) saturate(1.8);backdrop-filter:blur(30px) saturate(1.8);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:1px solid var(--glass-border);border-bottom:none;padding:8px 20px calc(var(--safe-bottom) + 24px);animation:slideUp .3s var(--ease)}.sheet-handle{width:38px;height:5px;border-radius:3px;background:var(--hairline);margin:6px auto 14px}@keyframes slideUp{0%{transform:translateY(40%);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
