*{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}}.category-picker-card{background:#f8fafc;margin-top:16px}.category-picker-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.category-picker-groups{margin-top:14px}.category-picker-group{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:12px}.category-picker-group-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.category-group-name{color:#0f172a;font-weight:900}.category-chip-list{flex-wrap:wrap;gap:7px;display:flex}.category-select-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:0;display:inline-flex;overflow:hidden}.category-select-chip.active{background:#0f172a;border-color:#0f172a}.category-select-chip>button:first-child{color:#475569;background:0 0;border:0;padding:7px 9px;font-size:12px;font-weight:900}.category-select-chip.active>button:first-child{color:#fff}.chip-delete{color:#b91c1c;background:#0f172a0f;border:0;padding:7px 9px;font-size:14px;font-weight:900;line-height:1}.category-select-chip.active .chip-delete{color:#fecaca;background:#ffffff29}.mini-danger{color:#b91c1c;background:#fff;border:1px solid #fecaca;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:12px;font-weight:900;display:inline-flex}.mini-danger:hover,.chip-delete:hover{background:#fef2f2}.category-add-panel{border-top:1px dashed #cbd5e1;margin-top:16px;padding-top:16px}.category-add-grid{grid-template-columns:180px 1fr 1.5fr auto;align-items:end;gap:10px;display:grid}.category-add-button{align-self:end}.save-actions{text-align:center;border-top:1px solid #e2e8f0;justify-items:center;gap:8px;margin-top:22px;padding-top:18px;display:grid}.save-main{justify-content:center;min-width:220px;padding:12px 22px;font-size:15px}@media (width<=820px){.category-picker-group-head{flex-direction:column;align-items:flex-start}.mini-danger{justify-content:center;width:100%}.category-add-grid{grid-template-columns:1fr}.category-add-button .btn,.save-main{width:100%}}.confirm-backdrop{z-index:9999;background:#0f172a6b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirm-card{text-align:left;background:#fff;border:1px solid #fecaca;border-radius:22px;width:min(460px,100%);padding:22px;box-shadow:0 24px 70px #0f172a47}.confirm-icon{color:#b91c1c;background:#fef2f2;border-radius:16px;margin-bottom:10px;padding:10px;display:inline-flex}.confirm-card h3{color:#7f1d1d;margin:0 0 8px;font-size:20px;font-weight:900}.confirm-card p{white-space:pre-wrap;color:#334155;margin:0;line-height:1.7}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.danger-solid{color:#fff!important;background:#b91c1c!important}.danger-solid:hover{background:#991b1b!important}@media (width<=640px){.confirm-actions{flex-direction:column-reverse}.confirm-actions button{justify-content:center;width:100%}}.confirm-actions.safe-right{grid-template-columns:minmax(120px,.75fr) minmax(190px,1.45fr);align-items:stretch;gap:12px;display:grid}.confirm-actions.safe-right button{justify-content:center}.danger-compact{min-width:0;font-size:13px;padding:10px 12px!important}.safe-large{font-size:15px;font-weight:900;color:#0f172a!important;background:#fff!important;border:2px solid #cbd5e1!important;padding:12px 18px!important}.safe-large:focus,.safe-large:hover{background:#f8fafc!important;border-color:#94a3b8!important}@media (width<=640px){.confirm-actions.safe-right{grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr)}.confirm-actions.safe-right button{width:auto}}.basic-diary-save-row{justify-content:center;margin-top:14px;display:flex}.basic-diary-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.view-switch{background:#e2e8f0;border-radius:14px;gap:4px;padding:4px;display:inline-flex}.view-switch button{color:#475569;background:0 0;border:0;border-radius:10px;padding:8px 12px;font-weight:900}.view-switch button.active{color:#0f172a;background:#fff;box-shadow:0 1px 4px #0f172a1a}.basic-diary-calendar-layout{grid-template-columns:minmax(300px,420px) 1fr;align-items:start;gap:16px;display:grid}.diary-calendar-card,.selected-day-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:14px}.calendar-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.calendar-header button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:7px 10px;font-weight:900}.calendar-month-label{color:#0f172a;font-weight:900}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekdays{color:#64748b;text-align:center;margin-bottom:6px;font-size:12px;font-weight:900}.calendar-day{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:12px;place-items:center;gap:1px;min-height:46px;font-weight:900;display:grid}.calendar-day:disabled{background:0 0;border-color:#0000}.calendar-day.has-diary{border-color:#0f172a}.calendar-day.selected{color:#fff;background:#0f172a}.calendar-day em{color:#0f172a;background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:11px;font-style:normal;display:inline-flex}.calendar-day.selected em{color:#0f172a;background:#fff}.selected-day-title{margin-bottom:10px;font-weight:900}@media (width<=860px){.basic-diary-head{flex-direction:column}.view-switch{width:100%}.view-switch button{flex:1}.basic-diary-calendar-layout{grid-template-columns:1fr}.calendar-day{border-radius:10px;min-height:42px}}.csv-export,.csv-export details{position:relative}.csv-export summary{cursor:pointer;list-style:none}.csv-export summary::-webkit-details-marker{display:none}.csv-summary{align-items:center;gap:7px;display:inline-flex}.csv-menu{z-index:60;background:#fff;border:1px solid #e2e8f0;border-radius:16px;gap:6px;min-width:190px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #0f172a29}.csv-menu button{text-align:left;color:#0f172a;background:#f8fafc;border:0;border-radius:10px;padding:9px 10px;font-weight:900}.csv-menu button:hover{background:#e2e8f0}@media (width<=820px){.desktop-only{display:none!important}}
