*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--teal-50: #E1F5EE;--teal-200: #5DCAA5;--teal-500: #1D9E75;--teal-700: #0F6E56;--amber-50: #FAEEDA;--amber-400: #EF9F27;--amber-700: #854F0B;--coral-50: #FAECE7;--coral-400: #F0997B;--coral-700: #993C1D;--purple-50: #EEEDFE;--purple-400: #AFA9EC;--purple-700: #3C3489;--blue-50: #E6F1FB;--blue-400: #85B7EB;--blue-700: #0C447C;--green-50: #EAF3DE;--green-400: #97C459;--green-700: #3B6D11;--text: #1a1a1a;--text-muted: #555;--text-faint: #888;--border: #e2e2e2;--border-strong: #bbb;--surface: #ffffff;--surface-1: #f7f8f6;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.06)}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;color:var(--text);background:var(--surface-1);line-height:1.5}h1{font-size:22px;font-weight:500}h2{font-size:18px;font-weight:500}h3{font-size:15px;font-weight:500}input,select,textarea{width:100%;padding:8px 12px;border:.5px solid var(--border-strong);border-radius:var(--radius);font-size:14px;color:var(--text);font-family:inherit;background:var(--surface);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-500);box-shadow:0 0 0 3px var(--teal-50)}textarea{resize:vertical;min-height:60px}label{font-size:13px;color:var(--text-muted);display:block;margin-bottom:4px}button,.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;font-family:inherit;transition:background .15s,transform .1s;text-decoration:none}button:hover{background:var(--surface-1)}button:active{transform:scale(.98)}.btn-primary{background:var(--teal-500);color:#fff;border-color:var(--teal-500)}.btn-primary:hover{background:var(--teal-700);border-color:var(--teal-700)}.btn-danger{color:var(--coral-700);border-color:var(--coral-400)}.btn-danger:hover{background:var(--coral-50)}button:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:20px}.page{max-width:960px;margin:0 auto;padding:24px 16px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.flex{display:flex;align-items:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;margin:2px}.tag-teal{background:var(--teal-50);color:var(--teal-700);border:.5px solid var(--teal-200)}.tag-amber{background:var(--amber-50);color:var(--amber-700);border:.5px solid var(--amber-400)}.tag-coral{background:var(--coral-50);color:var(--coral-700);border:.5px solid var(--coral-400)}.tag-purple{background:var(--purple-50);color:var(--purple-700);border:.5px solid var(--purple-400)}.tag-blue{background:var(--blue-50);color:var(--blue-700);border:.5px solid var(--blue-400)}.tag-green{background:var(--green-50);color:var(--green-700);border:.5px solid var(--green-400)}hr{border:none;border-top:.5px solid var(--border);margin:16px 0}.alert{padding:10px 14px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.alert-error{background:var(--coral-50);color:var(--coral-700);border:.5px solid var(--coral-400)}.alert-success{background:var(--green-50);color:var(--green-700);border:.5px solid var(--green-400)}.alert-warning{background:var(--amber-50);color:var(--amber-700);border:.5px solid var(--amber-400)}.alert-info{background:var(--blue-50);color:var(--blue-700);border:.5px solid var(--blue-400)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--teal-500);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.page{padding:16px 12px}}
