*{box-sizing:border-box}body{color:#0f172a;background:#f8fafc;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-header{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border-bottom:1px solid #e2e8f0;position:sticky;top:0}.header-inner,.main,.footer{max-width:1120px;margin:0 auto;padding-left:16px;padding-right:16px}.header-inner{justify-content:space-between;align-items:center;gap:12px;padding-top:12px;padding-bottom:10px;display:flex}.header-title-block{min-width:0}.header-actions{align-items:center;gap:10px;display:flex}.app-title{margin:0;font-size:24px;font-weight:900}.subtle{color:#64748b;font-size:14px}.nav{gap:6px;padding-bottom:12px;display:flex;overflow-x:auto}.nav button,.btn,.btn-light,.tab{white-space:nowrap;border:0;border-radius:12px;align-items:center;gap:7px;padding:9px 13px;font-weight:800;display:inline-flex}.nav button{color:#475569;background:#fff}.nav button.active,.btn{color:#fff;background:#0f172a}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-light{color:#334155;background:#fff;border:1px solid #cbd5e1}.mobile-menu-bar{display:none}.mobile-menu-button{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:14px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;font-weight:900;display:flex}.mobile-current{align-items:center;gap:8px;display:inline-flex}.main{padding-top:24px;padding-bottom:24px}.page{min-height:100vh;padding:28px 16px}.page-inner{max-width:1120px;margin:0 auto}.card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:18px;box-shadow:0 1px 2px #0f172a0a}.section-title{align-items:center;gap:12px;margin-bottom:16px;display:flex}.icon-box{color:#fff;background:#0f172a;border-radius:14px;padding:9px;display:inline-flex}h1,h2,h3{margin-top:0}h2{margin-bottom:2px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.full{grid-column:1/-1}.stack{gap:14px;display:grid}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:12px;display:flex}.input,input,textarea,select{background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:100%;padding:10px 12px}label span{color:#334155;margin-bottom:5px;font-size:13px;font-weight:800;display:block}.tabs{background:#f1f5f9;border-radius:16px;gap:6px;margin-bottom:14px;padding:5px;display:flex}.tab{color:#64748b;background:0 0;flex:1;justify-content:center}.tab.active{color:#0f172a;background:#fff;box-shadow:0 1px 2px #0f172a14}.pill{color:#475569;background:#f1f5f9;border-radius:999px;align-items:center;gap:5px;margin:2px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.empty{text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:16px;padding:24px;font-size:14px}.person-card{text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:18px;width:100%;padding:16px;box-shadow:0 1px 2px #0f172a0a}.person-card:hover{background:#f8fafc}.line-clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notice{border:1px solid #e2e8f0;border-radius:16px;padding:14px;font-size:14px}.notice.error{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.notice.warning{color:#78350f;background:#fffbeb;border-color:#fde68a}.notice.success{color:#064e3b;background:#ecfdf5;border-color:#a7f3d0}.notice.info{color:#334155;background:#f8fafc}.error-box{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca;border-radius:16px;margin-bottom:16px;padding:14px}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.image-thumb{object-fit:cover;border:1px solid #e2e8f0;border-radius:12px;width:100%;height:110px}.drop-zone{text-align:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.danger{color:#b91c1c;background:#fff;border-color:#fecaca}.danger:hover{background:#fef2f2}.category-list{gap:8px;margin-top:10px;display:grid}.category-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.category-name{color:#334155;font-weight:800}.category-type-chip{color:#334155;background:#e2e8f0;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}pre{white-space:pre-wrap;word-break:break-word}@media (width<=820px){.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.header-top{align-items:flex-start;gap:8px;padding-top:10px;padding-bottom:6px}.app-title{font-size:22px}.header-subtitle{font-size:12px}.header-actions{gap:8px}.header-actions .btn,.header-actions .btn-light{padding:7px 10px;font-size:13px}.mobile-menu-bar{padding-top:0;padding-bottom:8px;display:flex}.nav{padding-bottom:10px;display:none;overflow-x:visible;padding-top:0!important}.nav.open{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.nav button{justify-content:flex-start;padding:10px 12px}.main{padding-top:14px}.section-title{margin-bottom:12px}.card{border-radius:16px;padding:14px}.row,.between{flex-direction:column;align-items:stretch}.row-wrap{align-items:stretch}.category-item{flex-direction:column;align-items:flex-start}}.stack-sm{gap:10px;display:grid}.duplicate-card{border-color:#f59e0b}.candidate-row{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.candidate-name{color:#0f172a;font-weight:900}.button-row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.danger-light{color:#b91c1c;background:#fff;border:1px solid #fecaca;border-radius:12px;padding:10px 14px;font-weight:900}@media (width<=720px){.candidate-row{grid-template-columns:1fr}.candidate-row .btn{width:100%}.button-row>*{flex:1}}
