:root{--color-dfa-blue:#00a8f2;--color-interactive-blue:#0b63e6;--color-deep-blue:#002d7b;--color-black:#000;--color-gray-700:#333;--color-gray-500:#6b6b6b;--color-gray-300:#c8c8c8;--color-gray-100:#f5f7fa;--color-white:#fff;--color-success:#2faf4c;--color-warning:#f5a623;--color-error:#c62839;--color-info:var(--color-interactive-blue);--font-heading:"General Sans", sans-serif;--font-body:"Open Sans", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-size-4xl:3rem;--font-size-5xl:4rem;--font-size-6xl:5rem;--font-size-7xl:6rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.15;--line-height-snug:1.3;--line-height-normal:1.5;--line-height-relaxed:1.65;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4rem;--space-8:6rem;--space-9:8rem;--space-10:10rem;--content-max-width:1280px;--gutter-mobile:1.5rem;--gutter-desktop:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:999px}body{font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-gray-700);background-color:var(--color-white);margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-black);margin:0 0 var(--space-3)}h1{font-size:var(--font-size-6xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin:0 0 var(--space-3)}.text-lead{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-gray-700)}.text-small{font-size:var(--font-size-sm)}.text-caption{font-size:var(--font-size-xs);color:var(--color-gray-500)}blockquote{margin:0 0 var(--space-3);padding-left:var(--space-4);border-left:4px solid var(--color-dfa-blue);font-family:var(--font-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);color:var(--color-black)}ul,ol{margin:0 0 var(--space-3);padding-left:var(--space-4);line-height:var(--line-height-normal)}ul li::marker{color:var(--color-interactive-blue)}a{color:var(--color-interactive-blue);text-decoration:underline}a:hover,a:visited{color:var(--color-deep-blue)}a:focus-visible{outline:2px solid var(--color-interactive-blue);outline-offset:2px}.container{max-width:var(--content-max-width);padding-inline:var(--gutter-mobile);margin-inline:auto}@media (min-width:768px){.container{padding-inline:var(--gutter-desktop)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;border:2px solid #0000;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-interactive-blue);outline-offset:2px}.btn-primary{background-color:var(--color-interactive-blue);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-deep-blue)}.btn-secondary{border-color:var(--color-interactive-blue);color:var(--color-interactive-blue);background-color:#0000}.btn-secondary:hover{background-color:var(--color-gray-100)}.btn-ghost{color:var(--color-interactive-blue);padding-left:var(--space-2);padding-right:var(--space-2);background-color:#0000;border-color:#0000}.btn-ghost:hover{background-color:var(--color-gray-100)}.btn-sm{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.btn-lg{font-size:var(--font-size-lg);padding:var(--space-4) var(--space-5)}.btn:disabled,.btn.is-disabled{background-color:var(--color-gray-300);border-color:var(--color-gray-300);color:var(--color-gray-500);cursor:not-allowed}.btn-icon{padding:var(--space-3);border-radius:var(--radius-full)}.btn.is-loading{color:#0000;pointer-events:none;position:relative}.btn.is-loading:after{content:"";border-radius:var(--radius-full);width:1em;height:1em;color:var(--color-white);border:2px solid;border-right-color:#0000;animation:.6s linear infinite btn-spin;position:absolute}.btn-secondary.is-loading:after,.btn-ghost.is-loading:after{color:var(--color-interactive-blue)}@keyframes btn-spin{to{transform:rotate(360deg)}}.card{background-color:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);padding:var(--space-4)}.card-title{font-family:var(--font-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-black);margin:0 0 var(--space-2)}.card-body{color:var(--color-gray-700);line-height:var(--line-height-normal)}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--color-gray-300)}.table th{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);color:var(--color-black);background-color:var(--color-gray-100)}.table tbody tr:hover{background-color:var(--color-gray-100)}.alert{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid #0000;display:flex}.alert-success{background-color:color-mix(in srgb, var(--color-success) 12%, white);border-color:var(--color-success);color:#1c6b2f}.alert-warning{background-color:color-mix(in srgb, var(--color-warning) 15%, white);border-color:var(--color-warning);color:#7a4d0a}.alert-error{background-color:color-mix(in srgb, var(--color-error) 10%, white);border-color:var(--color-error);color:var(--color-error)}.alert-info{background-color:color-mix(in srgb, var(--color-info) 10%, white);border-color:var(--color-info);color:var(--color-deep-blue)}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.6;display:inline-flex}.badge-neutral{background-color:var(--color-gray-100);color:var(--color-gray-700)}.badge-blue{background-color:color-mix(in srgb, var(--color-interactive-blue) 8%, white);color:var(--color-interactive-blue)}.badge-success{background-color:color-mix(in srgb, var(--color-success) 15%, white);color:#1c6b2f}.badge-warning{background-color:color-mix(in srgb, var(--color-warning) 20%, white);color:#7a4d0a}.badge-error{background-color:color-mix(in srgb, var(--color-error) 12%, white);color:var(--color-error)}.tooltip{display:inline-flex;position:relative}.tooltip .tooltip-bubble{bottom:calc(100% + var(--space-2));background-color:var(--color-black);color:var(--color-white);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;left:50%;transform:translate(-50%)}.tooltip:hover .tooltip-bubble,.tooltip:focus-within .tooltip-bubble{opacity:1}.field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field-label{font-weight:var(--font-weight-semibold);color:var(--color-black);font-size:var(--font-size-sm)}.field-input{font-family:var(--font-body);font-size:var(--font-size-base);padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);color:var(--color-black);background-color:var(--color-white)}.field-input:focus-visible{border-color:var(--color-interactive-blue);box-shadow:0 0 0 2px var(--color-interactive-blue);outline:none}.field-error{align-items:center;gap:var(--space-1);color:var(--color-error);font-size:var(--font-size-sm);display:flex}.field-success{align-items:center;gap:var(--space-1);color:var(--color-success);font-size:var(--font-size-sm);display:flex}.field-help{color:var(--color-gray-500);font-size:var(--font-size-sm)}.field-input.has-error{border-color:var(--color-error)}.field-input.has-success{border-color:var(--color-success)}.field-input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}textarea.field-input{resize:vertical;min-height:6rem}select.field-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%236B6B6B'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:var(--icon-size-sm);padding-right:var(--space-6)}.field-choice{align-items:center;gap:var(--space-2);font-size:var(--font-size-base);color:var(--color-black);display:flex}.field-choice input[type=checkbox],.field-choice input[type=radio]{width:20px;height:20px;accent-color:var(--color-interactive-blue);margin:0}.field-toggle{align-items:center;gap:var(--space-2);cursor:pointer;display:inline-flex}.field-toggle input{appearance:none;background-color:var(--color-gray-300);border-radius:var(--radius-full);cursor:pointer;width:40px;height:24px;transition:background-color .15s;position:relative}.field-toggle input:before{content:"";background-color:var(--color-white);border-radius:var(--radius-full);width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px}.field-toggle input:checked{background-color:var(--color-interactive-blue)}.field-toggle input:checked:before{transform:translate(16px)}fieldset{border:1px solid var(--color-gray-300);border-radius:var(--radius-md);padding:var(--space-4);margin:0 0 var(--space-4)}fieldset legend{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);padding:0 var(--space-2)}
*,:before,:after{box-sizing:border-box}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-gray-700);background:var(--color-gray-100);margin:0}h1,h2,h3{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-black);margin:0}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-base)}a{color:var(--color-interactive-blue)}:focus-visible{outline:2px solid var(--color-interactive-blue);outline-offset:2px}.app-header{--app-gutter:var(--gutter-mobile);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) calc(max(0px, (100% - var(--content-max-width)) / 2) + var(--app-gutter));background:var(--color-deep-blue);display:flex}.app-header img{width:auto;height:24px;display:block}.app-header nav{gap:var(--space-4);display:flex}.app-header nav a{color:var(--color-gray-300);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none}.app-header nav a:hover{color:var(--color-white)}.app-header-right{align-items:center;gap:var(--space-4);display:flex}.app-freshness{color:var(--color-gray-300);font-size:var(--font-size-xs);white-space:nowrap}.app-user{align-items:center;gap:var(--space-2);color:var(--color-gray-300);font-size:var(--font-size-sm);white-space:nowrap;display:flex}.app-user button{min-height:36px;padding:0 var(--space-3);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);cursor:pointer;background:0 0}.app-main{max-width:var(--content-max-width);padding:var(--space-6) var(--gutter-mobile);margin:0 auto}.empty-state{margin-top:var(--space-5);padding:var(--space-5);background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg)}.empty-state p{margin:0}@media (min-width:768px){.app-header{--app-gutter:var(--gutter-desktop)}.app-main{padding-left:var(--gutter-desktop);padding-right:var(--gutter-desktop)}}
