:root {
  color-scheme: dark;
  --bg: #142033;
  --nav: #23313e;
  --paper: #203149;
  --surface: #2a3e59;
  --line: #3c526f;
  --header-bg: #304c73;
  --header-line: #5c7da4;
  --ink: #e8edf7;
  --muted: #a8b9d2;
  --blue: #6895f8;
  --blue-soft: #2b4570;
  --red: #ef8d99;
  font-family: "Segoe UI", "Malgun Gothic", sans-serif;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; font-size: 14px; line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
button:disabled { opacity: .5; cursor: wait; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #90b2ff; outline-offset: 3px;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { word-break: keep-all; overflow-wrap: anywhere; }
h1 { font-size: 25px; line-height: 1.4; letter-spacing: -.8px; margin-bottom: 0; }
h2 { font-size: 16px; font-weight: 600; margin-bottom: 0; }
h3 { font-size: 14px; font-weight: 600; }
svg.icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; vertical-align: middle; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.full-width { width: 100%; }
.boot, .loading, .error-state { padding: 16vh 20px; text-align: center; color: var(--muted); }
.brand { display: flex; align-items: center; gap: 12px; color: #f2f5ff; font-size: 20px; font-weight: 700; letter-spacing: -.7px; white-space: nowrap; }
.brand-mark { width: 36px; height: 36px; border-radius: 10px; display: inline-grid; place-items: center; color: #fff; background: linear-gradient(135deg, #477cdf, #8badff); font-size: 25px; font-weight: 800; line-height: 1; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 226px; background: var(--nav); border-right: 1px solid #425362; padding: 29px 16px 20px; z-index: 30; display: flex; flex-direction: column; overflow-y: auto; }
.sidebar .brand { margin: 0 13px 40px; }
.sidebar .brand-mark { background: linear-gradient(135deg, #537c98, #90b6ce); }
.sidebar nav { display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; }
.nav-link { display: flex; align-items: center; gap: 12px; padding: 12px 13px; border: 1px solid #425463; border-radius: 9px; color: #b9c7d3; background: #2a3947; font-size: 14px; transition: background .15s, border-color .15s; }
.nav-link>.icon { color: #9db3c4; }
.nav-link:hover { color: #edf5fa; background: #334959; border-color: #698398; }
.nav-link.active { color: #edf6fc; background: #3c5c72; border-color: #7e9fb5; box-shadow: inset 3px 0 #9ac9e6; }
.nav-link.active>.icon { color: #d1e8f5; }
.nav-link .count { margin-left: auto; }
.sidebar-admin { margin-top: 22px; padding-top: 18px; border-top: 1px solid #425362; flex-shrink: 0; }
.sidebar-bottom { margin-top: auto; border-top: 1px solid #425362; padding-top: 15px; display: flex; flex-direction: column; gap: 7px; flex-shrink: 0; }
.sidebar-bottom .nav-link { background: #263541; border-color: #3a4c5b; }
.sidebar-bottom .nav-link:hover { background: #334959; border-color: #698398; }
.sidebar-bottom .nav-link.active { background: #3c5c72; border-color: #7e9fb5; }
.logout-button { width: 100%; text-align: left; }
.sidebar-close, .menu-button { display: none !important; }
.main-shell { margin-left: 226px; }
.topbar { height: 68px; padding: 0 34px; border-bottom: 1px solid var(--line); background: #1b2d46; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.topbar-left { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; }
.portal-clock { display: flex; align-items: center; gap: 9px; white-space: nowrap; }
.portal-clock>.icon { color: #91a5c2; width: 18px; height: 18px; }
.clock-text { display: flex; align-items: center; gap: 12px; }
[data-clock-date] { color: #9eafc8; font-size: 12px; }
[data-clock-time] { color: #b9c7db; font-size: 16px; font-weight: 400; line-height: 1.4; letter-spacing: .3px; font-variant-numeric: tabular-nums; }
.top-actions { display: flex; align-items: center; gap: 18px; }
.icon-button { min-height: 35px; border: 1px solid var(--line); border-radius: 7px; background: transparent; color: var(--muted); padding: 7px 9px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.icon-button:hover { background: var(--surface); color: var(--ink); }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: #253a60; color: #bed1ff; display: inline-grid; place-items: center; font-size: 13px; font-weight: 600; flex: none; }
.user-button { display: flex; align-items: center; gap: 10px; border: 0; padding: 0; background: none; color: var(--ink); font-size: 13px; }
.content { max-width: 1560px; padding: 30px 34px 38px; margin: auto; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 26px; }
.page-head h1 { min-width: 0; }
.button { border: 1px solid #4a6385; background: #2b415d; color: #d7e1f4; border-radius: 7px; min-height: 40px; padding: 9px 16px; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; }
.button:hover { border-color: #5876a9; background: #354d6d; }
.button.primary { background: linear-gradient(110deg, #5284ee, #7b9ff4); border-color: transparent; color: #fff; }
.button.primary:hover { background: linear-gradient(110deg, #6191fb, #8bafff); }
.button.ghost { border-color: transparent; background: transparent; color: var(--muted); }
.link { color: #99baff; display: inline-flex; align-items: center; gap: 5px; font-size: 13px; }
.link .icon { width: 15px; height: 15px; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.stat { background: var(--paper); border: 1px solid var(--line); border-radius: 11px; padding: 20px 24px; }
.stat h2 { display: flex; align-items: center; gap: 9px; color: #b7c6e1; font-size: 14px; margin-bottom: 17px; }
.stat h2 .icon { color: #83a6ee; width: 18px; height: 18px; }
.stat-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.stat-pair.categories { grid-template-columns: repeat(3, 1fr); }
.stat-pair>div { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.stat-pair>div+div { border-left: 1px solid var(--line); padding-left: 22px; }
.stat-pair strong { font-size: 36px; line-height: 1.3; font-weight: 650; letter-spacing: -.9px; }
.stat-pair>div>span { font-size: 12px; color: var(--muted); }
.stat-pair strong.resolved-number { color: #97b8ff; }
.categories strong { font-size: 30px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: stretch; }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-bottom: 22px; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 22px; background: var(--header-bg); border-bottom: 1px solid var(--header-line); min-height: 46px; }
.panel-header .icon-button, .dialog-head .icon-button { min-height: 28px; padding: 4px 6px; }
.panel-header h2 { display: flex; align-items: center; gap: 8px; }
.panel-body { padding: 24px; }
.compact-header { padding-top: 7px; padding-bottom: 7px; min-height: 46px; }
.dashboard-notices { min-height: 400px; max-height: 850px; display: flex; flex-direction: column; }
.dashboard-notices>[data-notice-list] { overflow-y: auto; flex: 1; }
.table-wrap { overflow: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; white-space: nowrap; }
th { background: #1b2b42; padding: 12px 18px; font-size: 12px; color: #a6b8d3; font-weight: 500; border-bottom: 1px solid var(--line); }
td { padding: 15px 18px; border-bottom: 1px solid #354b68; font-size: 13px; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #2a405d; }
.number-column { width: 66px; }
.issue-number { color: #a6b8d3; font-size: 12px; }
.issue-title { display: block; min-width: 150px; max-width: 650px; font-size: 14px; font-weight: 500; white-space: normal; overflow-wrap: anywhere; }
.issue-title:hover { color: #a9c5ff; }
.issue-sub { font-size: 12px; color: #8294b2; margin-top: 4px; }
.issue-sub .icon { width: 13px; height: 13px; }
.comment-count { color: #93b4ff; font-size: 12px; margin-left: 8px; }
.badge { display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; background: #334b6a; color: #a9b8d4; padding: 3px 8px; font-size: 11px; font-weight: 500; white-space: nowrap; line-height: 1.65; }
.badge.bug { color: #f49caa; background: #3d2638; }
.badge.question { color: #b4adff; background: #2e2b4e; }
.badge.request { color: #8dcde8; background: #20394a; }
.badge.status-1 { color: #a6c4ff; background: #263b60; }
.badge.status-2 { color: #e6c17a; background: #403725; }
.badge.status-3 { color: #a8c2ff; background: #2b3c66; }
.badge.status-4 { color: #c9aff2; background: #382c50; }
.badge.project-badge { color: #a8c2ef; background: #22344d; }
.badge.count { border-radius: 20px; background: #426fc6; color: white; padding: 1px 7px; min-width: 20px; }
.project-shortcuts { padding: 15px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.project-shortcuts>a { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; background: #253a55; padding: 13px; font-size: 13px; }
.project-shortcuts>a:hover { background: #304968; }
.project-shortcuts>a>span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.project-shortcuts>a>.icon { color: #8caeea; width: 17px; height: 17px; }
.project-shortcuts>.empty { grid-column: 1/-1; width: 100%; }
.notification { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.notification:last-child { border: 0; }
.notification:hover { background: #2b415f; }
.notification>div { min-width: 0; }
.notification p { margin: 0 0 7px; font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.notification time { font-size: 11px; color: #a0b3cf; }
.notification.read p { color: #a3b4ce; }
.notification-dot { width: 6px; height: 6px; border-radius: 50%; background: #83aaff; margin-top: 8px; flex: none; }
.notification.read .notification-dot { background: #46546e; }
.empty { min-height: 150px; padding: 32px 18px; text-align: center; color: #a2b4cf; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 13px; font-size: 13px; }
.empty>.icon { width: 26px; height: 26px; color: #5f759e; }
.filterbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.filterbar input[type=search] { flex: 1; min-width: 160px; }
.filterbar select { width: auto; min-width: 110px; }
.filterbar .check { font-size: 13px; white-space: nowrap; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.board-back { margin: -12px 0 21px; }
.field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 500; margin-bottom: 18px; }
input:not([type=checkbox]):not([type=file]), select, textarea { width: 100%; min-height: 42px; border: 1px solid #526b8c; border-radius: 7px; background: var(--surface); color: var(--ink); padding: 10px 12px; }
input::placeholder, textarea::placeholder { color: #a1b2cd; }
textarea { min-height: 128px; resize: vertical; line-height: 1.9; }
input[type=checkbox] { accent-color: var(--blue); width: 16px; height: 16px; flex: none; }
.check { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.form-grid, .participant-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.participant-columns { gap: 18px; margin: 6px 0 20px; }
.participant-columns section { border: 1px solid var(--line); border-radius: 8px; padding: 15px; }
.participant-columns h3 { margin-bottom: 13px; }
.participant-list { display: flex; flex-direction: column; gap: 11px; max-height: 210px; overflow: auto; font-size: 13px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 21px; }
.file-box { border: 1px dashed #526b8c; background: #1b2d46; border-radius: 8px; padding: 15px; margin: 12px 0; }
.file-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.file-picker { position: relative; overflow: hidden; cursor: pointer; font-size: 12px; padding: 8px 11px; }
.file-picker input[type=file] { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; }
.file-picker:focus-within { outline: 2px solid #90b2ff; outline-offset: 3px; }
.file-limit { color: #8195b9; font-size: 12px; margin-top: 11px; }
.file-list { color: #b5c9ed; font-size: 12px; margin-top: 8px; overflow-wrap: anywhere; }
.edit-existing-files { margin: 18px 0; display: grid; gap: 8px; }
.edit-existing-files h3 { margin-bottom: 0; }
.grid-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.project-card { display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: 11px; padding: 26px; min-height: 315px; }
.project-card h2 { font-size: 20px; line-height: 1.5; margin-bottom: 18px; }
.project-description { flex: 1; min-height: 130px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.95; color: #b6c3db; font-size: 14px; margin-bottom: 28px; }
.project-actions { display: flex; gap: 10px; }
.project-actions>.button { flex: 1; min-height: 45px; }
.project-actions>.primary { flex: 2; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 265px; gap: 22px; align-items: start; }
.detail-head { padding: 24px; border-bottom: 1px solid var(--line); }
.detail-head h1 { font-size: 23px; margin: 17px 0 12px; }
.chips { display: flex; flex-wrap: wrap; gap: 7px; }
.detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: 12px; color: #8ea1c2; }
.prose { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.95; }
.rich-editor { border: 1px solid #526b8c; border-radius: 8px; overflow: hidden; background: var(--surface); font-weight: 400; }
.rich-editor:focus-within { border-color: #91b7e9; box-shadow: 0 0 0 2px #91b7e926; }
.editor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 7px; border-bottom: 1px solid var(--line); background: var(--paper); }
.editor-tool { min-height: 34px; padding: 5px 9px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--ink); cursor: pointer; font-size: 13px; }
.editor-tool:hover, .editor-tool[aria-pressed=true] { background: #526b8c55; border-color: #6b86a8; }
.editor-toolbar .editor-color { width: 90px; min-height: 34px; padding: 4px 7px; font-size: 13px; }
.editor-content { min-height: 220px; max-height: 50dvh; overflow-y: auto; padding: 14px; outline: none; color: var(--ink); cursor: text; }
.editor-content:empty:before { content: attr(data-placeholder); color: var(--muted); pointer-events: none; }
.editor-content p { margin: 0; }
.editor-footnote { padding: 6px 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.rich-image { display: block; max-width: 100%; height: auto; max-height: 520px; object-fit: contain; margin: 10px 0; border-radius: 5px; }
.editor-content .rich-image { max-height: 280px; }
.prose strong, .prose b { font-weight: 700; }
.text-red { color: #f28b82; }
.text-orange { color: #ffbd75; }
.text-green { color: #81c995; }
.text-blue { color: #8ab4f8; }
.text-purple { color: #c7a4ed; }
.attachments { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.attachment { max-width: 760px; border: 1px solid #354565; border-radius: 8px; overflow: hidden; background: #1b2b42; }
.attachment img, .attachment video { display: block; max-width: 100%; max-height: 400px; margin: auto; }
.attachment-link { display: flex; align-items: center; gap: 10px; padding: 12px 14px; color: #b1c9f8; font-size: 13px; }
.attachment-link>span { min-width: 0; overflow-wrap: anywhere; }
.attachment-link small { color: #8097bd; margin-left: 7px; font-size: 11px; }
.comment { display: flex; gap: 13px; border-bottom: 1px solid var(--line); padding: 22px; }
.comment-main { flex: 1; min-width: 0; }
.comment-head { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-bottom: 9px; font-size: 13px; }
.comment-head time, .event time { color: #8193b2; font-size: 11px; }
.event { display: flex; align-items: flex-start; gap: 10px; border-bottom: 1px solid var(--line); padding: 15px 22px; color: #9baeca; background: #1b2d46; font-size: 12px; }
.event>.icon { width: 15px; height: 15px; margin-top: 3px; color: #728fbc; }
.event>div { min-width: 0; overflow-wrap: anywhere; }
.event time { display: block; margin-top: 4px; }
.release-card { padding: 25px; border-bottom: 1px solid var(--line); scroll-margin: 25px; }
.release-card:last-child { border: 0; }
.release-card h2 { margin: 15px 0 9px; font-size: 20px; }
.release-card .prose { margin-top: 20px; }
.release-card.target { background: #1b2c49; }
.group-item { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.group-item:last-child { border: 0; }
.group-item .badge { margin-left: 10px; }
.group-item p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.admin-user { display: grid; grid-template-columns: minmax(170px, 1fr) 2fr auto; gap: 20px; align-items: center; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.admin-user:last-child { border: 0; }
.admin-user small { display: block; margin-top: 4px; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.group-checks { display: flex; flex-wrap: wrap; gap: 12px; }
.group-member-picker { border: 1px solid var(--line); border-radius: 8px; padding: 15px; }
.group-member-picker h3 { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.group-member-picker h3>.badge { margin-left: auto; }
.group-member-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; max-height: 260px; overflow-y: auto; margin-top: 12px; }
.group-member-option { align-items: flex-start; padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: #1b2b42; }
.group-member-option>input { margin-top: 4px; }
.group-member-identity { min-width: 0; overflow-wrap: anywhere; }
.group-member-identity small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.group-member-picker>p { margin: 12px 0 0; }
.settings-card { max-width: 590px; }
.account-email { color: var(--muted); margin-bottom: 25px; font-size: 14px; }
.notice { background: #334c70; border: 1px solid #456392; border-radius: 8px; color: #c3d7fc; padding: 15px 18px; font-size: 13px; margin-bottom: 22px; }
dialog { width: calc(100% - 32px); max-width: 680px; max-height: 91dvh; padding: 0; border: 1px solid #354764; border-radius: 12px; background: var(--paper); color: var(--ink); box-shadow: 0 28px 90px #0008; }
dialog::backdrop { background: #050b16bb; backdrop-filter: blur(3px); }
.dialog-head { position: sticky; top: 0; background: var(--header-bg); padding: 8px 23px; min-height: 46px; border-bottom: 1px solid var(--header-line); display: flex; align-items: center; justify-content: space-between; z-index: 2; }
.dialog-body { padding: 24px; }
.inline-error { color: #f2a3ac; font-size: 13px; margin-top: 14px; white-space: pre-wrap; }
.toast { position: fixed; bottom: 25px; right: 25px; z-index: 100; max-width: calc(100% - 40px); padding: 14px 20px; border: 1px solid #3f6095; border-radius: 9px; background: #223b65; color: #eef4ff; font-size: 13px; box-shadow: 0 10px 35px #0005; }
.toast.error { background: #5c2c3b; border-color: #9b5263; }
.auth-layout { min-height: 100dvh; display: grid; place-items: center; padding: 40px 20px; background: radial-gradient(ellipse at 80% 0, #2a4263 0, transparent 55%), linear-gradient(135deg, #142033, #20334d); }
.auth-container { width: 100%; max-width: 425px; }
.auth-container>.brand { justify-content: center; margin-bottom: 31px; font-size: 26px; }
.auth-container .brand-mark { width: 44px; height: 44px; font-size: 30px; }
.auth-card { background: #203149; border: 1px solid #354b68; border-radius: 14px; padding: 29px 30px 33px; box-shadow: 0 20px 65px #0005; }
.auth-tabs { display: flex; border-bottom: 1px solid var(--line); margin-bottom: 27px; }
.auth-tabs button { flex: 1; border: 0; background: none; padding: 0 0 16px; color: #8799b9; font-weight: 600; font-size: 16px; }
.auth-tabs button.active { border-bottom: 2px solid #7ba7ff; color: #c4d8ff; }
.auth-card .field { margin-bottom: 21px; }
.auth-card .full-width { min-height: 45px; margin-top: 7px; }
.mobile-shade { display: none; }
@media (min-width: 1500px) { .content { padding-top: 37px; } .stats { gap: 22px; } .stat { padding: 23px 27px; } }
@media (max-width: 1200px) {
  .sidebar { width: 212px; padding-left: 12px; padding-right: 12px; }
  .main-shell { margin-left: 212px; }
  .content { padding: 26px 25px; }
  .topbar { padding: 0 25px; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr) 290px; gap: 18px; }
  .stats { gap: 13px; }
  .stat { padding: 18px; }
  .stat-pair>div+div { padding-left: 15px; }
  .grid-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  td, th { padding-left: 13px; padding-right: 13px; }
}
@media (max-width: 1000px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-notices { min-height: 200px; max-height: 500px; }
  .detail-layout { grid-template-columns: 1fr; }
  .detail-aside { grid-row: 1; }
  .detail-aside .panel-body { display: flex; flex-wrap: wrap; align-items: end; gap: 15px; }
  .detail-aside .field { flex: 1; min-width: 170px; margin: 0; }
  .detail-aside .form-actions { margin: 0; }
  .detail-aside .inline-error:not([hidden]) { width: 100%; }
}
@media (max-width: 760px) {
  .sidebar { width: 236px; transform: translateX(-100%); visibility: hidden; }
  .sidebar.open { transform: translateX(0); visibility: visible; }
  .sidebar-close { display: inline-flex !important; position: absolute; top: 20px; right: 9px; min-height: 29px; padding: 4px; }
  .sidebar .brand { margin-right: 25px; }
  .menu-button { display: inline-flex !important; }
  .main-shell { margin-left: 0; }
  .mobile-shade.visible { display: block; position: fixed; inset: 0; z-index: 25; background: #030814b0; }
  .topbar { height: 61px; padding: 0 15px; gap: 10px; }
  .topbar-left { gap: 8px; }
  .top-actions { gap: 10px; }
  .portal-clock>.icon { display: none; }
  .clock-text { flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.5; }
  [data-clock-date] { font-size: 10px; }
  [data-clock-time] { font-size: 14px; }
  .top-actions { gap: 11px; }
  .user-button>span:last-child { display: none; }
  .content { padding: 22px 15px; }
  h1 { font-size: 23px; }
  .page-head { gap: 12px; margin-bottom: 22px; flex-wrap: wrap; }
  .page-head>.button { padding: 8px 11px; font-size: 12px; }
  .stats { grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
  .stat:last-child { grid-column: 1/-1; }
  .stat { padding: 16px; }
  .stat h2 { font-size: 13px; margin-bottom: 13px; }
  .stat-pair strong { font-size: 29px; }
  .stat-pair>div+div { padding-left: 12px; }
  .categories strong { font-size: 29px; }
  .stat-pair.categories>div { align-items: center; }
  .panel-header { padding: 7px 16px; min-height: 44px; }
  .panel-header h2 { font-size: 15px; }
  .panel-body { padding: 19px; }
  .hide-mobile { display: none; }
  .number-column { width: 42px; }
  td, th { padding-left: 10px; padding-right: 10px; }
  td { padding-top: 14px; padding-bottom: 14px; }
  .issue-title { min-width: 130px; font-size: 13px; }
  .issue-sub { font-size: 11px; }
  .badge { padding: 3px 6px; font-size: 10px; }
  .project-shortcuts { grid-template-columns: 1fr; padding: 13px; }
  .filterbar { padding: 14px; gap: 9px; }
  .filterbar input[type=search] { flex-basis: 100%; }
  .filterbar select { flex: 1; min-width: 90px; }
  .filterbar .check { margin-left: auto; font-size: 12px; }
  .grid-cards { grid-template-columns: 1fr; }
  .project-card { padding: 23px; min-height: 300px; }
  .project-card h2 { font-size: 21px; }
  .project-description { font-size: 14px; }
  .notification { padding: 17px; }
  .form-grid, .participant-columns { grid-template-columns: 1fr; }
  .group-member-list { grid-template-columns: 1fr; }
  .form-grid { gap: 0; }
  .participant-list { max-height: 170px; }
  .dialog-head { padding: 7px 19px; min-height: 44px; }
  .dialog-body { padding: 19px; }
  .file-buttons { gap: 7px; }
  .file-picker { flex: 1 1 auto; font-size: 11px; padding: 8px; }
  .file-picker .icon { width: 16px; height: 16px; }
  .file-limit { font-size: 11px; }
  .detail-head { padding: 20px; }
  .detail-head h1 { font-size: 21px; }
  .comment { padding: 18px; gap: 10px; }
  .event { padding: 15px 18px; }
  .admin-user { grid-template-columns: 1fr auto; padding: 18px; gap: 13px; }
  .admin-user .group-checks { grid-column: 1/-1; grid-row: 2; }
  .admin-user>.button { grid-column: 2; grid-row: 1; }
  .auth-card { padding: 25px; }
  .toast { bottom: 18px; right: 18px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
/* 요청사항3: 제목 표시줄, 관리 화면, 삭제 확인 */
.head-actions { display: flex; align-items: center; gap: 10px; }
.panel-header h2 { display: flex; align-items: center; gap: 9px; color: #f2f6ff; }
.panel-header h2>.icon { width: 18px; height: 18px; color: #b5d0ff; }
.stats { gap: 20px; }
.stat { padding: 0; overflow: hidden; }
.stat .panel-header { min-height: 46px; padding: 8px 22px; }
.stats .stat .panel-header, .dashboard-grid .panel-header { min-height: 46px; padding: 8px 22px; }
.stat h2 { margin: 0; font-size: 14px; }
.stat-pair { padding: 19px 22px 22px; }
.dashboard-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dashboard-grid>div { grid-column: span 2; min-width: 0; }
.dashboard-grid>div>.panel:last-child { margin-bottom: 0; }
.dashboard-notices { margin: 0; min-width: 0; min-height: 0; max-height: none; height: 100%; }
.dashboard-notices>[data-notice-list] { min-height: 0; }
.project-cell { display: block; max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #aebfdc; font-size: 12px; }
.issue-title>.icon { width: 13px; height: 13px; color: #879bc0; }
.project-card { position: relative; padding: 0; overflow: hidden; }
.project-card:hover { border-color: #5279b9; }
.project-card.is-locked { min-height: 110px; }
.project-card.is-locked .project-description { display: none; }
.project-card-title { background: var(--header-bg); border-bottom: 1px solid var(--header-line); padding: 8px 22px; min-height: 46px; }
.project-card-title h2 { font-size: 18px; margin: 0; color: #f2f6ff; }
.project-card-link { display: flex; align-items: center; gap: 10px; }
.project-card-link>.icon { color: #b5d0ff; }
.project-card-link::after { position: absolute; content: ''; inset: 0; cursor: pointer; }
.project-card-link:focus-visible { outline: none; }
.project-card-link:focus-visible::after { outline: 2px solid #90b2ff; outline-offset: -2px; border-radius: 10px; }
.project-description { padding: 22px; margin: 0; }
.project-card-footer { padding: 0 21px 20px; display: flex; justify-content: flex-end; }
.project-card-footer>.button { position: relative; z-index: 1; }
.button.danger-text { color: #f3a0ab; }
.button.danger-text:hover { color: #ffd5dc; background: #442837; }
.button.danger { background: #b04458; color: white; border-color: #ce687b; }
.button.danger:hover { background: #c34d64; }
.comment-delete { margin-left: auto; min-height: 30px; padding: 4px 7px; font-size: 11px; }
.comment-delete>.icon { width: 14px; height: 14px; }
.project-admin-picker { margin: 8px 0 20px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.project-admin-picker h3 { display: flex; align-items: center; gap: 8px; }
.project-admin-picker .participant-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-delete-row { margin-top: 23px; padding-top: 17px; border-top: 1px solid var(--line); }
.delete-warning { display: flex; align-items: flex-start; gap: 12px; padding: 17px; border: 1px solid #854252; border-radius: 8px; background: #382330; color: #f4a6b3; font-size: 14px; margin-bottom: 20px; }
.delete-warning>.icon { margin-top: 3px; }
.delete-warning>p { margin: 0; }
.delete-target { overflow-wrap: anywhere; white-space: pre-wrap; font-size: 16px; }
.delete-counts { color: #a5b6d1; font-size: 13px; margin: 15px 0 22px; }
.project-order-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.project-order-list>li { display: flex; align-items: center; gap: 11px; padding: 12px; background: #2b415d; border: 1px solid var(--line); border-radius: 8px; }
.project-order-list>li>b { flex: 1; min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
.project-order-list>li>span { width: 22px; color: #8097c0; font-size: 12px; }
.admin-user { grid-template-columns: minmax(150px, 1fr) minmax(220px, 1.5fr) minmax(200px, 1fr); }
.group-memberships { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.group-memberships>.group-checks { flex: 1; }
.role-controls { display: flex; align-items: center; gap: 9px; }
.role-controls select { min-width: 105px; }
.member-identity>.badge { margin-left: 9px; }
.member-active { color: #b2d4ff; background: #243e60; }
.member-suspended { color: #f1b7be; background: #4b2c3a; }
.member-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.member-dialog-name { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.member-dialog-name>b { font-size: 18px; }
.member-account-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.member-target { overflow-wrap: anywhere; color: #b8c9e7; }
.admin-tabs { display: flex; gap: 7px; padding: 5px; margin: -5px 0 20px; border: 1px solid var(--line); border-radius: 10px; background: #1b2b42; width: fit-content; scroll-margin-top: 20px; }
.admin-tabs>[role=tab] { display: inline-flex; align-items: center; gap: 9px; min-height: 36px; padding: 5px 17px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--muted); font-weight: 500; }
.admin-tabs>[role=tab]:hover { background: #293c56; color: var(--ink); }
.admin-tabs>[role=tab][aria-selected=true] { background: #304c73; color: #f2f6ff; border-color: #57779f; }
.admin-tabs .badge { background: #1d304c; color: #bcd0eb; }
.member-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 20px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.member-toolbar>form { display: flex; align-items: center; gap: 9px; flex: 1; max-width: 440px; }
.member-toolbar input { min-width: 0; }
.member-toolbar>.pagination { border: 0; padding: 0; }
.disk-metrics { padding: 23px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.disk-metrics>div { display: flex; flex-direction: column; gap: 7px; }
.disk-metrics>div>span { color: var(--muted); font-size: 13px; }
.disk-metrics strong { font-size: 27px; font-weight: 600; }
.disk-metrics progress { grid-column: 1/-1; width: 100%; height: 8px; border: 0; appearance: none; border-radius: 6px; overflow: hidden; background: #24324e; }
.disk-metrics progress::-webkit-progress-bar { background: #24324e; }
.disk-metrics progress::-webkit-progress-value { background: #7a9ff4; }
.disk-metrics progress::-moz-progress-bar { background: #7a9ff4; }
.storage-table { min-width: 850px; }
.file-name { display: block; max-width: 265px; color: #b4ceff; overflow-wrap: anywhere; white-space: normal; }
.post-reference { display: block; max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1000px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-grid>div { grid-column: 1/-1; }
  .dashboard-notices { height: auto; min-height: 220px; }
  .dashboard-notices>[data-notice-list] { max-height: 430px; }
  .admin-user { grid-template-columns: 1fr; gap: 17px; }
  .member-controls { justify-content: flex-start; }
  .member-toolbar { gap: 14px; }
  .admin-tabs { max-width: 100%; }
  .admin-tabs>[role=tab] { padding-left: 13px; padding-right: 13px; gap: 7px; }
  .member-toolbar>form { flex-basis: 100%; max-width: none; }
  .member-toolbar>.pagination { margin-left: auto; }
}
@media (max-width: 760px) {
  .stat .panel-header { padding: 7px 14px; min-height: 44px; }
  .stats .stat .panel-header, .dashboard-grid .panel-header { padding: 7px 14px; min-height: 44px; }
  .stat h2 { font-size: 13px; }
  .stat-pair { padding: 15px; }
  .head-actions { flex-wrap: wrap; gap: 8px; }
  .head-actions>.button { font-size: 12px; padding: 8px 11px; }
  .project-card-title { padding: 7px 20px; min-height: 44px; }
  .project-description { padding: 20px; }
  .project-card-footer { padding: 0 19px 18px; }
  .project-cell { max-width: 110px; }
  .disk-metrics { padding: 18px; gap: 12px; }
  .disk-metrics strong { font-size: 20px; }
  .disk-metrics>div>span { font-size: 12px; }
  .admin-user .group-checks { grid-column: auto; grid-row: auto; }
  .role-controls { max-width: 340px; }
  .project-admin-picker .participant-list { grid-template-columns: 1fr; }
}
