/* 디자인 정의.md: Material 구조 + Neo-Brutalism 상호작용 레이어 */
:root { --orange:#2563eb; --orange-dark:#1d4ed8; --ink:#0f172a; --muted:#475569; --line:#0f172a; --peach:#f8fafc; }
body { background:#f8fafc; color:#0f172a; }
.sidebar { border-right:2px solid #000; background:#fff; }
.topbar, footer { border-color:#000; }
.nav-item { border:2px solid transparent; border-radius:10px; color:#1e293b; font-weight:700; }
.nav-item:hover, .nav-item.active { border-color:#000; background:#ffe600; color:#000; box-shadow:3px 3px 0 #000; }
.nav-item.active { transform:translate(-1px,-1px); }
.place-switch, .sidebar-place-picker summary { border:2px solid #000; border-radius:10px; background:#fff; box-shadow:3px 3px 0 #000; }
.btn, .icon-btn, .tab, .view-buttons button, .favorite, .help-link, .drive-item-menu summary, .school-rail-parent, .school-rail-tab { border:2px solid #000 !important; border-radius:8px; font-weight:800; box-shadow:3px 3px 0 #000; }
.btn-primary { background:#ffe600 !important; color:#000 !important; box-shadow:3px 3px 0 #000 !important; }
.btn-outline { border-color:#000 !important; background:#fff !important; color:#0f172a !important; }
.btn:hover, .icon-btn:hover, .tab:hover, .view-buttons button:hover, .favorite:hover, .help-link:hover, .school-rail-parent:hover, .school-rail-tab:hover { background:#f472b6 !important; color:#000 !important; }
.btn:active, .icon-btn:active, .tab:active, .view-buttons button:active, .favorite:active, .help-link:active, .school-rail-parent:active, .school-rail-tab:active { transform:translate(3px,3px); box-shadow:none !important; }
.btn-primary:hover { background:#84cc16 !important; }
.field input, .field select, .field textarea, .searchbox, .drive-search, .drive-filters select, input, select, textarea { border:2px solid #000 !important; border-radius:8px !important; background:#fff !important; box-shadow:none; }
.field input:focus, .field select:focus, .field textarea:focus, .searchbox:focus-within, .drive-search:focus-within, input:focus, select:focus, textarea:focus { outline:3px solid #2563eb !important; outline-offset:2px; }
.board-card, .panel, .place-card, .resource-card, .post, .dashboard-panel, .drive-page-list, .platform-panel, .plan-card, .welcome-notice-panel, .home-banner-settings, .detail-banner, .info-banner, .empty, .dashboard-focus, .overview, .school-content-sheet, .place-material-board { border:2px solid #000 !important; border-radius:12px !important; box-shadow:4px 4px 0 #000 !important; background:#fff; }
.board-card:hover, .place-card:hover, .resource-card:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 #000 !important; }
.board-cover, .dashboard-focus, .detail-banner { background:#f8fafc !important; color:#0f172a; }
.cover-free, .cover-math { background:#ffe600 !important; color:#000 !important; }
.cover-english { background:#2563eb !important; color:#fff !important; }
.cover-club { background:#f472b6 !important; color:#000 !important; }
.cover-science, .cover-korean { background:#84cc16 !important; color:#000 !important; }
.mini-tag, .status-badge, .preview-chip, .soon, .role-table .role-label, .welcome-notice-category { border:2px solid #000 !important; border-radius:6px !important; background:#84cc16 !important; color:#000 !important; font-weight:800; }
.dashboard-focus-stats { border:2px solid #000 !important; border-radius:10px !important; }
.dashboard-focus-stats div { border-color:#000 !important; }
dialog { border:2px solid #000 !important; border-radius:14px !important; box-shadow:6px 6px 0 #000 !important; }
dialog::backdrop { background:#0f172a66; backdrop-filter:none; }
#toast { border:2px solid #000; border-radius:8px; box-shadow:4px 4px 0 #000; background:#2563eb; color:#fff; }
.page-heading h1, .dashboard-head h1, .drive-page-top h1 { color:#0f172a; font-weight:900; }
.eyebrow, .dashboard-eyebrow { color:#2563eb; font-weight:900; }
@media (max-width:700px) { .sidebar { box-shadow:5px 0 0 #000; } .btn, .icon-btn, .tab, .view-buttons button, .favorite, .help-link { box-shadow:2px 2px 0 #000; } .board-card, .panel, .place-card, .resource-card, .post, .dashboard-panel, .drive-page-list, .platform-panel, .plan-card, .welcome-notice-panel, .home-banner-settings, .detail-banner, .info-banner, .empty, .dashboard-focus, .overview, .school-content-sheet, .place-material-board { box-shadow:3px 3px 0 #000 !important; } }

/* 조합 정리: 큰 행동은 강하게, 목록 안의 세부 행동은 가볍게 */
.nav-item:hover { background:#fff; color:#0f172a; }
.nav-item.active { background:#2563eb; color:#fff; }
.nav-item.active svg { color:#fff; }
.dashboard-head .btn, .page-heading .btn, .drive-command-bar .btn, .modal-footer .btn, .dashboard-focus .btn, .bulletin-create-options button { min-height:40px; }
.dashboard-task > button, .dashboard-task > a, .dashboard-recent-list > button, .dashboard-portfolio-list > button, .form-row, .place-material-table button, .drive-item-open, .school-rail-tab { border:0 !important; border-radius:0; box-shadow:none !important; }
.dashboard-task > button, .dashboard-task > a { border:2px solid #000 !important; border-radius:7px; padding:6px 9px; box-shadow:2px 2px 0 #000 !important; }
.dashboard-recent-list > button:hover, .dashboard-portfolio-list > button:hover, .form-row:hover { background:#f8fafc !important; transform:none; }
.dashboard-task, .dashboard-recent-list > button, .dashboard-portfolio-list > button { border-color:#cbd5e1; }
.dashboard-focus { background:#fff !important; }
.dashboard-focus-copy > span, .dashboard-panel-head span { color:#2563eb; }
.dashboard-focus-stats { background:#f8fafc; }
.dashboard-task > span { background:#ffe600; color:#000; border:2px solid #000; }
.dashboard-board-dot { border:2px solid #000; }
.drive-list-row { border-bottom:1px solid #cbd5e1; }
.drive-list-row:hover { background:#f8fafc; }
.drive-item-menu summary { width:30px; height:30px; line-height:20px; box-shadow:2px 2px 0 #000; }
.welcome-banner-image, .welcome-carousel-controls button, .welcome-quick-links a, .welcome-quick-links button { border:2px solid #000 !important; border-radius:10px !important; box-shadow:3px 3px 0 #000; }
.welcome-banner-image { box-shadow:4px 4px 0 #000; }
.welcome-carousel-controls button:active, .welcome-quick-links a:active, .welcome-quick-links button:active { transform:translate(3px,3px); box-shadow:none; }

/* 세부 요소는 기존 머티리얼 톤을 유지하고, 강조 카드·주요 행동에만 대비를 남긴다. */
:root { --orange:#ef6b35; --orange-dark:#c8491c; --ink:#25282d; --muted:#64748b; --line:#e2e8f0; --peach:#fff4ed; }
.sidebar { border-right:1px solid #e2e8f0; box-shadow:1px 0 3px #0f172a08; }
.topbar, footer { border-color:#e2e8f0; }
.nav-item, .nav-item:hover { border:0; box-shadow:none; background:transparent; color:#64748b; }
.nav-item.active { border:0; box-shadow:none; background:#fff0e8; color:#c8491c; transform:none; }
.nav-item.active svg { color:inherit; }
.place-switch, .sidebar-place-picker summary { border:1px solid #e2e8f0; box-shadow:none; }
.icon-btn, .tab, .view-buttons button, .favorite, .help-link, .drive-item-menu summary, .school-rail-parent, .school-rail-tab { border:0 !important; box-shadow:none !important; font-weight:inherit; }
.icon-btn:hover, .tab:hover, .view-buttons button:hover, .favorite:hover, .help-link:hover, .school-rail-parent:hover, .school-rail-tab:hover { background:#fff4ed !important; color:#c8491c !important; }
.field input, .field select, .field textarea, .searchbox, .drive-search, .drive-filters select, input, select, textarea { border:1px solid #cbd5e1 !important; }
.field input:focus, .field select:focus, .field textarea:focus, .searchbox:focus-within, .drive-search:focus-within, input:focus, select:focus, textarea:focus { outline:2px solid #fb923c !important; border-color:#ea580c !important; }
.btn-primary { background:#ef6b35 !important; color:#fff !important; box-shadow:0 3px 7px #ef6b3526 !important; }
.btn-primary:hover { background:#dc5b28 !important; box-shadow:0 5px 12px #ef6b3540 !important; }
.btn-outline { border:1px solid #cbd5e1 !important; box-shadow:none !important; font-weight:600; }
.btn:active { transform:none; }
.panel, .dashboard-panel, .drive-page-list, .platform-panel, .plan-card, .home-banner-settings, .info-banner, .empty, .overview, .school-content-sheet, .place-material-board { border:1px solid #e2e8f0 !important; box-shadow:0 1px 3px #0f172a0d !important; }
.dashboard-focus { border:2px solid #000 !important; box-shadow:4px 4px 0 #000 !important; background:#fff7ed !important; }
.board-card, .place-card, .resource-card, .post, .welcome-notice-panel { border:1px solid #e2e8f0 !important; box-shadow:0 1px 3px #0f172a0d !important; }
.board-card:hover, .place-card:hover, .resource-card:hover { box-shadow:0 8px 18px #0f172a12 !important; }
.mini-tag, .status-badge, .preview-chip, .soon, .role-table .role-label, .welcome-notice-category { border:0 !important; background:#fff0e8 !important; color:#c8491c !important; font-weight:700; }
.dashboard-focus-stats { border:1px solid #fed7aa !important; background:#fff !important; }
.dashboard-focus-stats div { border-color:#fed7aa !important; }
.dashboard-task > button, .dashboard-task > a { border:0 !important; box-shadow:none !important; }
.dashboard-task > span { border:0; background:#fff0e8; color:#c8491c; }
.dashboard-board-dot { border:0; }
dialog { border:0 !important; box-shadow:0 18px 50px #0f172a30 !important; }
#toast { border:0; box-shadow:0 4px 14px #0f172a33; background:#334155; }
.eyebrow, .dashboard-eyebrow, .dashboard-focus-copy > span, .dashboard-panel-head span { color:#c8491c; }
.welcome-banner-image, .welcome-carousel-controls button, .welcome-quick-links a, .welcome-quick-links button { border:1px solid #e2e8f0 !important; box-shadow:none; }
@media (max-width:700px) { .sidebar { box-shadow:12px 0 28px #0f172a1f; } .dashboard-focus { box-shadow:3px 3px 0 #000 !important; } }

/* 균형 복원: 정보 탐색은 차분하게, 핵심 행동·핵심 카드에는 네오 브루탈리즘을 명확히 적용 */
.btn-primary, .dashboard-head .btn-primary, .page-heading .btn-primary, .drive-command-bar .btn-primary, .modal-footer .btn-primary { border:2px solid #000 !important; background:#ffe600 !important; color:#000 !important; font-weight:800; box-shadow:3px 3px 0 #000 !important; }
.btn-primary:hover, .dashboard-head .btn-primary:hover, .page-heading .btn-primary:hover, .drive-command-bar .btn-primary:hover, .modal-footer .btn-primary:hover { background:#84cc16 !important; transform:translate(-1px,-1px); box-shadow:4px 4px 0 #000 !important; }
.btn-primary:active, .dashboard-head .btn-primary:active, .page-heading .btn-primary:active, .drive-command-bar .btn-primary:active, .modal-footer .btn-primary:active { transform:translate(3px,3px); box-shadow:none !important; }
.board-card, .place-card, .resource-card, .dashboard-panel, .plan-card, .welcome-notice-panel, .post { border:2px solid #000 !important; box-shadow:4px 4px 0 #000 !important; }
.board-card:hover, .place-card:hover, .resource-card:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 #000 !important; }
.dashboard-focus { border:2px solid #000 !important; box-shadow:5px 5px 0 #000 !important; }
.dashboard-quick .btn-outline, .page-heading .btn-outline, .drive-command-bar .btn-outline { border:2px solid #000 !important; box-shadow:3px 3px 0 #000 !important; font-weight:750; }
.dashboard-quick .btn-outline:hover, .page-heading .btn-outline:hover, .drive-command-bar .btn-outline:hover { background:#f472b6 !important; color:#000 !important; transform:translate(-1px,-1px); box-shadow:4px 4px 0 #000 !important; }
.dashboard-quick .btn-outline:active, .page-heading .btn-outline:active, .drive-command-bar .btn-outline:active { transform:translate(3px,3px); box-shadow:none !important; }
.mini-tag, .status-badge, .preview-chip, .soon, .role-table .role-label, .welcome-notice-category { border:2px solid #000 !important; background:#84cc16 !important; color:#000 !important; box-shadow:2px 2px 0 #000; font-weight:800; }
.cover-free, .cover-math { background:#ffe600 !important; color:#000 !important; }.cover-english { background:#2563eb !important; color:#fff !important; }.cover-club { background:#f472b6 !important; color:#000 !important; }.cover-science,.cover-korean { background:#84cc16 !important; color:#000 !important; }
dialog { border:2px solid #000 !important; box-shadow:6px 6px 0 #000 !important; }
@media (max-width:700px) { .board-card, .place-card, .resource-card, .dashboard-panel, .plan-card, .welcome-notice-panel, .post { box-shadow:3px 3px 0 #000 !important; } .dashboard-focus { box-shadow:4px 4px 0 #000 !important; } }

/* 퍼스널 컬러 기준: 기본 UI는 Material, 주황은 보조 포인트로 제한 */
:root { --orange:#2563eb; --orange-dark:#1d4ed8; --ink:#1e293b; --muted:#64748b; --line:#e2e8f0; --peach:#eff6ff; }
body { background:#f8fafc; color:#1e293b; }
.sidebar { border-right:1px solid #e2e8f0; box-shadow:1px 0 4px #0f172a08; }.topbar, footer { border-color:#e2e8f0; }
.nav-item, .nav-item:hover { border:0; box-shadow:none; background:transparent; color:#64748b; }.nav-item.active { border:0; box-shadow:none; background:#eff6ff; color:#2563eb; transform:none; }.nav-item.active svg { color:inherit; }
.place-switch, .sidebar-place-picker summary { border:1px solid #e2e8f0; box-shadow:none; }.icon-btn, .tab, .view-buttons button, .favorite, .help-link, .drive-item-menu summary, .school-rail-parent, .school-rail-tab { border:0 !important; box-shadow:none !important; font-weight:inherit; }
.icon-btn:hover, .tab:hover, .view-buttons button:hover, .favorite:hover, .help-link:hover, .school-rail-parent:hover, .school-rail-tab:hover { background:#eff6ff !important; color:#2563eb !important; }
.btn-primary, .dashboard-head .btn-primary, .page-heading .btn-primary, .drive-command-bar .btn-primary, .modal-footer .btn-primary { border:0 !important; background:#2563eb !important; color:#fff !important; box-shadow:0 2px 6px #2563eb33 !important; font-weight:700; }.btn-primary:hover, .dashboard-head .btn-primary:hover, .page-heading .btn-primary:hover, .drive-command-bar .btn-primary:hover, .modal-footer .btn-primary:hover { background:#1d4ed8 !important; transform:translateY(-1px); box-shadow:0 5px 12px #2563eb38 !important; }.btn-primary:active { transform:none; box-shadow:0 1px 3px #2563eb30 !important; }
.btn-outline, .dashboard-quick .btn-outline, .page-heading .btn-outline, .drive-command-bar .btn-outline { border:1px solid #cbd5e1 !important; background:#fff !important; color:#334155 !important; box-shadow:none !important; font-weight:600; }.btn-outline:hover, .dashboard-quick .btn-outline:hover, .page-heading .btn-outline:hover, .drive-command-bar .btn-outline:hover { background:#f8fafc !important; color:#1e293b !important; transform:none; }
.field input, .field select, .field textarea, .searchbox, .drive-search, .drive-filters select, input, select, textarea { border:1px solid #cbd5e1 !important; }.field input:focus, .field select:focus, .field textarea:focus, .searchbox:focus-within, .drive-search:focus-within, input:focus, select:focus, textarea:focus { outline:2px solid #93c5fd !important; border-color:#2563eb !important; }
.board-card, .place-card, .resource-card, .dashboard-panel, .plan-card, .welcome-notice-panel, .post, .panel, .drive-page-list, .platform-panel, .home-banner-settings, .info-banner, .empty, .overview, .school-content-sheet, .place-material-board, .dashboard-focus { border:1px solid #e2e8f0 !important; box-shadow:0 1px 3px #0f172a0d !important; }.board-card:hover, .place-card:hover, .resource-card:hover { transform:translateY(-2px); box-shadow:0 8px 18px #0f172a12 !important; }
.dashboard-focus { background:linear-gradient(120deg,#eff6ff,#fff 60%,#f5f3ff) !important; }.dashboard-focus-stats { border:1px solid #dbeafe !important; background:#fff !important; }.dashboard-focus-stats div { border-color:#dbeafe !important; }.dashboard-focus-copy > span, .dashboard-panel-head span, .eyebrow, .dashboard-eyebrow { color:#2563eb; }
.dashboard-task > span { border:0; background:#eff6ff; color:#2563eb; }.dashboard-task > button, .dashboard-task > a { border:0 !important; box-shadow:none !important; color:#2563eb; }.dashboard-board-dot { border:0; }
.mini-tag, .status-badge, .preview-chip, .soon, .role-table .role-label, .welcome-notice-category { border:0 !important; box-shadow:none; background:#eff6ff !important; color:#2563eb !important; font-weight:700; }.status-badge.closing { background:#fff7ed !important; color:#c2410c !important; }
.board-cover, .detail-banner { background:#f5f3ff !important; color:#5b21b6; }.cover-free,.cover-math { background:#fff7ed !important; color:#c2410c !important; }.cover-english { background:#eff6ff !important; color:#1d4ed8 !important; }.cover-club { background:#f5f3ff !important; color:#7c3aed !important; }.cover-science,.cover-korean { background:#f0fdf4 !important; color:#3f6212 !important; }
.welcome-banner-image, .welcome-carousel-controls button, .welcome-quick-links a, .welcome-quick-links button { border:1px solid #e2e8f0 !important; box-shadow:none; }dialog { border:0 !important; box-shadow:0 18px 50px #0f172a30 !important; }#toast { border:0; box-shadow:0 4px 14px #0f172a33; background:#334155; }
@media (max-width:700px) { .sidebar { box-shadow:12px 0 28px #0f172a1f; }.board-card, .place-card, .resource-card, .dashboard-panel, .plan-card, .welcome-notice-panel, .post, .dashboard-focus { box-shadow:0 1px 3px #0f172a0d !important; } }

/* 균형 팔레트: 브랜드 주황은 유지하고, 보조 색상은 맥락별로 분산 */
:root { --orange:#f26b38; --orange-dark:#d95a2d; --ink:#1e293b; --muted:#64748b; --line:#e2e8f0; --peach:#fff1eb; }
.nav-item.active { background:#fff1eb; color:#d95a2d; }.icon-btn:hover, .tab:hover, .view-buttons button:hover, .favorite:hover, .help-link:hover, .school-rail-parent:hover, .school-rail-tab:hover { background:#fff7f2 !important; color:#d95a2d !important; }
.btn-primary, .dashboard-head .btn-primary, .page-heading .btn-primary, .drive-command-bar .btn-primary, .modal-footer .btn-primary { background:#f26b38 !important; box-shadow:0 2px 6px #f26b3833 !important; }.btn-primary:hover, .dashboard-head .btn-primary:hover, .page-heading .btn-primary:hover, .drive-command-bar .btn-primary:hover, .modal-footer .btn-primary:hover { background:#d95a2d !important; box-shadow:0 5px 12px #f26b3838 !important; }
.field input:focus, .field select:focus, .field textarea:focus, .searchbox:focus-within, .drive-search:focus-within, input:focus, select:focus, textarea:focus { outline-color:#fdba74 !important; border-color:#f26b38 !important; }
.dashboard-focus { background:linear-gradient(120deg,#fff1eb 0%,#fff 48%,#f5f3ff 76%,#f0fdf4 100%) !important; }.dashboard-focus-copy > span, .dashboard-panel-head span, .eyebrow, .dashboard-eyebrow { color:#d95a2d; }.dashboard-focus-stats { border-color:#fed7c7 !important; }.dashboard-focus-stats div { border-color:#fed7c7 !important; }
.dashboard-task > span { background:#fff1eb; color:#d95a2d; }.dashboard-task > button, .dashboard-task > a { color:#d95a2d; }
.mini-tag, .role-table .role-label { background:#fff1eb !important; color:#c2410c !important; }.status-badge { background:#f0fdf4 !important; color:#4d7c0f !important; }.preview-chip, .soon, .welcome-notice-category { background:#f5f3ff !important; color:#7c3aed !important; }
.cover-free,.cover-math { background:#fff1eb !important; color:#c2410c !important; }.cover-english { background:#f0f9ff !important; color:#0369a1 !important; }.cover-club { background:#f5f3ff !important; color:#7c3aed !important; }.cover-science,.cover-korean { background:#f0fdf4 !important; color:#4d7c0f !important; }

/* 주황 핵심 버튼도 흰 버튼과 같은 입체 호버 반응을 사용한다. */
.btn-primary:hover, .dashboard-head .btn-primary:hover, .page-heading .btn-primary:hover, .drive-command-bar .btn-primary:hover, .modal-footer .btn-primary:hover { transform:translate(-2px,-2px); box-shadow:5px 5px 0 #111 !important; }
.btn-primary:active, .dashboard-head .btn-primary:active, .page-heading .btn-primary:active, .drive-command-bar .btn-primary:active, .modal-footer .btn-primary:active { transform:translate(2px,2px); box-shadow:1px 1px 0 #111 !important; }
@media (prefers-reduced-motion:reduce) { .btn-primary:hover, .dashboard-head .btn-primary:hover, .page-heading .btn-primary:hover, .drive-command-bar .btn-primary:hover, .modal-footer .btn-primary:hover { transform:none; } }
