@charset "UTF-8";:root{--bg: #f5f5f5;--surface: #ffffff;--surface-2: #f4f4f4;--border: #e6e6e6;--border-strong: #d6d6d6;--text: #1a1a1a;--muted: #6b6b6b;--primary: #af6e54;--primary-600: #9c5e45;--primary-700: #844e39;--primary-soft: #f6e9e3;--danger: #c43d32;--danger-600: #ad342a;--ring: rgba(175, 110, 84, .22);--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(16, 31, 24, .05), 0 1px 3px rgba(16, 31, 24, .04);--shadow: 0 2px 4px rgba(16, 31, 24, .06), 0 6px 16px rgba(16, 31, 24, .06);--row-hover: #faf7f5;--error-bg: #fdeceb;--error-border: #f6cfcb;color-scheme:light;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem}:root[data-theme=dark]{--bg: #101010;--surface: #181818;--surface-2: #202020;--border: #2c2c2c;--border-strong: #3a3a3a;--text: #ededed;--muted: #a0a0a0;--primary: #c4866c;--primary-600: #cf9379;--primary-700: #d9a288;--primary-soft: rgba(196, 134, 108, .18);--danger: #e0584c;--danger-600: #e86d62;--ring: rgba(196, 134, 108, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 6px rgba(0, 0, 0, .45), 0 8px 20px rgba(0, 0, 0, .35);--row-hover: #202020;--error-bg: rgba(224, 88, 76, .12);--error-border: rgba(224, 88, 76, .4);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary-600);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.45rem;font-weight:650;letter-spacing:-.01em;margin:0}h2{font-size:1.1rem;font-weight:600;margin:0 0 var(--sp-4)}.layout{display:flex;min-height:100vh;align-items:stretch}.topbar,.nav-backdrop{display:none}.sidebar{width:244px;flex-shrink:0;background:linear-gradient(180deg,#1c1c1c,#000);color:#cfcfcf;padding:var(--sp-5) var(--sp-3);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:700;color:#fff;font-size:1.05rem;padding:var(--sp-1) var(--sp-3) var(--sp-5);letter-spacing:-.01em}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:block;padding:.55rem var(--sp-3);border-radius:var(--radius-sm);color:#bdbdbd;font-weight:500;transition:background .15s,color .15s}.sidebar nav a:hover{background:#ffffff12;color:#fff;text-decoration:none}.sidebar nav a.active{background:var(--primary);color:#fff;box-shadow:inset 0 0 0 1px #ffffff14}.theme-toggle{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);background:#ffffff0f;color:#dcdcdc;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:.55rem var(--sp-3);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.theme-toggle:hover{background:#ffffff1f}.content{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:var(--sp-6) var(--sp-6);min-width:0}.toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap}.toolbar .spacer{flex:1}.toolbar input[type=text],.toolbar select{width:auto;min-width:240px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}input[type=text],input[type=number],input[type=url],input[type=email],input[type=password],select,textarea{display:block;width:100%;padding:.55rem .7rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#9aa6af}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}textarea{min-height:110px;resize:vertical;line-height:1.5}select{cursor:pointer}.field{margin-bottom:var(--sp-5)}.field label{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:.82rem;color:#333;margin-bottom:var(--sp-2)}.field .hint{color:var(--muted);font-size:.78rem;margin-top:var(--sp-2)}.row{display:flex;gap:var(--sp-5)}.row>*{flex:1;min-width:0}@media(max-width:640px){.row{flex-direction:column;gap:0}}.inline-row{display:flex;gap:var(--sp-3);align-items:center}.inline-row>input{flex:1}.quick-add{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:var(--sp-3);align-items:center}.quick-add.quick-add-col{flex-direction:column;align-items:stretch}.quick-add .actions{display:flex;gap:var(--sp-3)}.quick-toggle{font-weight:500;font-size:.78rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:.5rem .9rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-600);border-color:var(--primary-600)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-600);border-color:var(--danger-600)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}table.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}table.table th,table.table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}table.table thead th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}table.table tbody tr{transition:background .12s}table.table tbody tr:last-child td{border-bottom:none}table.table tbody tr:hover{background:var(--row-hover);cursor:pointer}.badge{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.badge.DRAFT{background:#fff3d4;color:#8a6a00}.badge.PUBLISHED{background:#dcf1e4;color:#1d6b42}.badge.ARCHIVED{background:#eceff1;color:#5b6770}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--primary-soft);color:var(--primary-700);border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:500}.chip a{color:inherit;opacity:.7}.chip a:hover{opacity:1;text-decoration:none}.checkbox-list{max-height:240px;overflow:auto;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--sp-1)}.checkbox-list label{display:flex;align-items:center;justify-content:flex-start;gap:var(--sp-2);font-weight:400;color:var(--text);padding:.4rem var(--sp-2);margin-bottom:0;border-radius:var(--radius-sm);cursor:pointer}.checkbox-list label:nth-of-type(2n){background:var(--surface-2)}.checkbox-list label:hover{background:var(--row-hover)}.checkbox-list input[type=checkbox]{width:auto;flex-shrink:0;accent-color:var(--primary)}.checkbox-list .study-title{flex:1;text-align:left}.checkbox-list .study-year{margin-left:var(--sp-2);white-space:nowrap}.study-search{display:block;width:100%;padding:.6rem 1rem;margin-bottom:var(--sp-4);font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}.study-search::placeholder{color:#9aa6af}.study-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.study-list-label{margin-top:var(--sp-4)}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--sp-4)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .08s}.card:hover{box-shadow:var(--shadow);transform:translateY(-1px);text-decoration:none}.card .num{font-size:1.9rem;font-weight:700;color:var(--primary);line-height:1.1}.card .label{color:var(--muted);margin-top:var(--sp-1)}.muted{color:var(--muted)}.error{color:var(--danger-600);background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-sm);padding:.6rem .8rem;margin:0 0 var(--sp-4)}.empty{color:var(--muted);padding:var(--sp-6);text-align:center}.form-card{max-width:760px}@media(max-width:820px){.layout{display:block}.topbar{display:flex;align-items:center;gap:var(--sp-3);position:fixed;top:0;left:0;right:0;z-index:40;height:56px;padding:0 var(--sp-4);background:linear-gradient(180deg,#1c1c1c,#000);color:#fff}.topbar .brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:1rem;color:#fff;letter-spacing:-.01em}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);font-size:1.25rem;line-height:1;cursor:pointer}.nav-toggle:active{transform:translateY(1px)}.sidebar{position:fixed;top:56px;left:0;bottom:0;width:260px;max-width:82vw;height:auto;z-index:45;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow)}.sidebar>.brand{display:none}.layout.nav-open .sidebar{transform:translate(0)}.nav-backdrop{display:block;position:fixed;inset:56px 0 0;z-index:44;background:#00000080;opacity:0;pointer-events:none;transition:opacity .22s ease}.layout.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.content{max-width:none;padding:var(--sp-4);padding-top:calc(56px + var(--sp-4))}.toolbar{gap:var(--sp-2);margin-bottom:var(--sp-4)}.toolbar input[type=text],.toolbar select{min-width:0;flex:1 1 100%}table.table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.panel{padding:var(--sp-4)}.quick-add{flex-direction:column;align-items:stretch}.quick-add .actions{justify-content:flex-end}.dashboard-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-3)}}
