:root{--bg: #f2f7ff;--card: #ffffff;--text: #112240;--muted: #334e75;--primary: #2e96e6;--primary-hover: #1f82cf;--line: #c9daf2;--soft-line: #dbe7f8;--shadow-soft: 0 8px 20px rgba(0, 48, 120, .08);--danger-bg: #fee2e2;--danger-text: #991b1b;--success-bg: #dbeafe;--success-text: #1e3a8a}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:radial-gradient(circle at 20% 0%,#dbeafe,transparent 35%),var(--bg);color:var(--text)}.app-frame{min-height:100vh}.brand-header{width:100%;background:#2e96e6;border-bottom:1px solid #1f82cf;box-shadow:0 4px 12px #0030782e}.brand-inner{max-width:1260px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between}.brand-logo-img{height:44px;width:auto;display:block}.mobile-menu-btn{display:none;border:1px solid rgba(255,255,255,.65);background:#ffffff2e;color:#fff;width:34px;height:34px;border-radius:8px;padding:0;font-size:20px;line-height:1;font-weight:700}.mobile-menu-btn:hover{background:#ffffff47}.session-timer{color:#e8f3ff;font-weight:700;font-size:14px;letter-spacing:.3px}.session-timer-wrap{display:inline-flex;align-items:center;gap:8px}.session-close-btn{border:1px solid #ffffff;background:#fff;color:#2e96e6;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:700;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.session-close-btn:hover{background:#e8f3ff}.layout{max-width:1260px;margin:0 auto;padding:20px;display:grid;gap:16px}.not-found-title{margin:10px 0 4px;text-align:center;font-size:clamp(34px,4.8vw,60px);line-height:1.05;font-weight:400;color:#2e96e6}.not-found-card{background:#d5e6f2;border:1px solid #c0d7e9;border-radius:8px;box-shadow:0 10px 18px #00286429;padding:16px 20px;max-width:1100px;margin:0 auto}.not-found-card h2{margin:0 0 14px;font-size:clamp(20px,2.1vw,30px);font-weight:700;color:#0f2239}.not-found-card p{margin:0 0 12px;font-size:clamp(16px,1.15vw,22px);line-height:1.5;color:#0f2239}.not-found-card p:last-child{margin-bottom:0}.layout-shell{grid-template-columns:280px 1fr;align-items:start}.stack{display:grid;gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow-soft)}.login-card{width:min(410px,93vw);max-width:410px;padding:18px;margin:6vh auto}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px;width:100%}.login-brand h1{margin:0}.login-brand-logo{width:58px;height:58px;object-fit:contain}.login-card input,.login-card select,.login-card textarea{width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.topbar-actions{display:flex;gap:8px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.section-header h3{margin:0}.icon-plus-btn{width:36px;height:36px;border-radius:999px;padding:0;font-size:24px;line-height:1;font-weight:900;display:inline-flex;align-items:center;justify-content:center;border:none;background:#fff;color:#1f82cf;box-shadow:0 4px 10px #1f82cf2e;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.icon-plus-btn:hover{background:#f3f8ff;border-color:#7fb4e8;box-shadow:0 6px 14px #1f82cf3d;transform:translateY(-1px)}.icon-plus-btn:active{transform:translateY(0);box-shadow:0 4px 10px #1f82cf47}.sidebar{position:sticky;top:16px}.sidebar-brand{display:flex;align-items:center;gap:8px;margin-bottom:2px}.sidebar-brand h2{margin:0}.sidebar-brand-logo{width:48px;height:48px;object-fit:contain}.menu-list{display:grid;gap:10px}.submenu-group{display:grid;gap:8px}.submenu-list{display:grid;gap:8px;padding-left:14px;border-left:2px solid #d7e5fa;margin-left:8px}.menu-btn{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid #d5e3f8;background:linear-gradient(180deg,#f8fbff,#eff6ff);color:#163764;font-weight:600}.menu-label{display:inline-flex;align-items:center;gap:8px}.menu-icon{width:18px;height:18px;flex:0 0 18px;opacity:.95;color:currentColor}.menu-btn:hover{background:linear-gradient(180deg,#dbeeff,#cfe6ff);border-color:#8fb8ea;color:#0c2f5a}.menu-btn-active{background:linear-gradient(180deg,#2e96e6,#1f82cf);color:#fff;border-color:#1f82cf}.menu-btn-active:hover{background:linear-gradient(180deg,#2589d6,#1a75ba);color:#fff;border-color:#1a75ba}.submenu-item{font-size:14px;font-weight:500}.submenu-parent-btn{font-weight:700}.submenu-caret{font-size:13px;opacity:.9}.profile-switch{margin-bottom:12px}.menu-active{background:var(--primary);color:#fff}.sidebar-actions{margin-top:16px;display:grid;gap:8px}.content-area{display:grid;gap:16px}.mobile-backdrop{display:none}.form-grid{display:grid;gap:10px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.auth-links{margin-top:12px;display:flex;gap:12px;flex-wrap:wrap}.text-link{border:none;background:transparent;color:var(--primary);padding:0;cursor:pointer;text-decoration:underline}.text-link:hover{color:var(--primary-hover);background:transparent}label{display:grid;gap:6px;font-size:14px}input,select,textarea,button{font:inherit}input{border:1px solid var(--line);border-radius:8px;padding:10px}select,textarea{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}button{border:none;border-radius:8px;padding:10px 12px;background:var(--primary);color:#fff;cursor:pointer}button:hover{background:var(--primary-hover)}button.secondary{background:#8ea9c9;color:#0f315d;display:inline-flex;align-items:center;justify-content:center;gap:8px}button.secondary:hover{background:#7f9dc1}button.danger-btn{background:#b91c1c}button.danger-btn:hover{background:#991b1b}button.compact-btn{padding:6px 10px;font-size:12px;line-height:1.1;border-radius:999px}button:disabled{opacity:.7;cursor:default}.error-box{background:var(--danger-bg);color:var(--danger-text);border:1px solid #fecaca;border-radius:8px;padding:10px}.success-box{background:var(--success-bg);color:var(--success-text);border:1px solid #bbf7d0;border-radius:8px;padding:10px}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:8px;text-align:left;font-size:14px}th{color:var(--muted)}.two-col{display:grid;gap:16px;grid-template-columns:1fr 1fr}.click-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.click-item{border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.click-item:hover{border-color:#9bbce8;box-shadow:0 6px 14px #003c8c14;transform:translateY(-1px)}.click-list>li>button.full-width{border-radius:10px;border:1px solid var(--soft-line);padding:7px 9px;justify-content:flex-start}.click-list>li>.list-item-wrap>button.full-width{border-radius:10px;border:1px solid var(--soft-line);padding:7px 9px;justify-content:flex-start}.click-list>li>button.secondary.full-width{background:linear-gradient(180deg,#f8fbff,#f1f7ff);color:#17345f;justify-content:flex-start}.click-list>li>.list-item-wrap>button.secondary.full-width{background:linear-gradient(180deg,#f8fbff,#f1f7ff);color:#17345f;justify-content:flex-start}.click-list>li>button.menu-active.full-width{background:linear-gradient(180deg,#0b4aa0,#003b8e);border-color:#0a4a9f;justify-content:flex-start}.click-list>li>.list-item-wrap>button.menu-active.full-width{background:linear-gradient(180deg,#0b4aa0,#003b8e);border-color:#0a4a9f;justify-content:flex-start}.click-list>li>button.menu-active.full-width .row-meta,.click-list>li>.list-item-wrap>button.menu-active.full-width .row-meta{color:#e6f0ff}.notice-card{list-style:none;border:1px solid #bfdbfe;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#fff);padding:12px;display:grid;grid-template-columns:6px 1fr;gap:10px}.notice-card h4{margin:0 0 4px;font-size:19px;line-height:1.3;letter-spacing:.2px;color:#0f3d76;font-weight:800}.notice-card p{margin:0 0 6px;font-size:15px}.notice-accent{border-radius:6px;background:linear-gradient(180deg,#2563eb,#1d4ed8)}.full-width{width:100%;text-align:left}.detail-box{border:1px solid var(--soft-line);border-radius:12px;padding:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.detail-box h4{margin:0 0 10px;color:#0d3566}.detail-box p{margin:6px 0;line-height:1.45}.detail-box p strong{color:#14335f;min-width:190px;display:inline-block}.top-gap{margin-top:12px;animation:detail-reveal .18s ease-out;transform-origin:top}@keyframes detail-reveal{0%{opacity:0;transform:translateY(-6px) scaleY(.98)}to{opacity:1;transform:translateY(0) scaleY(1)}}.search-box{display:flex;align-items:center;gap:8px;margin-bottom:10px}.search-box input{flex:1}.defense-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 10px}.defense-filters label{min-width:124px;gap:4px;font-size:13px;color:#274a76}.filter-select{min-height:30px;padding:4px 9px;border-radius:8px;border:1px solid #bfd4f4;background:#f7fbff;font-size:12px;min-width:124px;max-width:148px}.list-row{display:grid;gap:4px}.list-item-wrap{position:relative}.list-item-main{padding-right:140px;text-align:left;justify-content:flex-start}.pdf-cert-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:700;padding:3px 8px;width:fit-content;line-height:1.2;text-decoration:none;cursor:pointer}.delete-chip{background:#fee2e2;border-color:#fecaca;color:#991b1b}.delete-chip:hover{background:#fecaca}.list-item-action{position:absolute;top:8px;right:10px;z-index:2}.row-title{font-weight:700}.row-meta{font-size:13px;opacity:.95;color:#334f78}.rich-text p{margin:0 0 4px;line-height:1.4}.rich-text p:last-child{margin-bottom:0}.rich-text .rich-empty{min-height:10px}.rich-text a{color:#0b4aa0;text-decoration:underline;word-break:break-all}.info-list{gap:10px}.info-item{padding:10px}.review-line{display:flex;gap:8px;flex-wrap:wrap}.review-decision{font-weight:700}.review-comment{font-style:italic}.row-badges{display:flex;gap:6px;flex-wrap:wrap}.compact-summary,.compact-summary-section{display:grid;gap:6px}.compact-summary-section h4{margin:0;color:#163764}.home-section-title{font-size:1.3rem}.compact-summary-row{margin:0}.summary-project-title{width:100%;background:#f7f9fc;border:1px solid #dbe3ef;border-radius:8px;padding:7px 9px}.summary-project-name{font-size:13.5px;font-weight:700;color:#143a66;line-height:1.4;white-space:normal;word-break:break-word}.summary-project-meta{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.projects-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:-4px 0 8px}.badge{background:#dbeafe;color:#1e3a8a;border:1px solid #bfdbfe;border-radius:999px;padding:3px 9px;font-size:12px;display:inline-flex;align-items:center;gap:6px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.status-pending{background:#fee2e2;color:#991b1b;border-color:#fecaca}.status-pending.status-dot{background:#dc2626}.status-complete{background:#dcfce7;color:#166534;border-color:#bbf7d0}.status-complete.status-dot{background:#16a34a}.checkbox{display:flex;align-items:center;gap:8px}.presence-grid{display:grid;gap:8px}.detail-box .click-list .click-item{border-radius:10px;border-color:#d7e5fa;background:#fff}@media (max-width: 900px){.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}.brand-inner{gap:10px}.brand-logo-img{margin-right:auto}.layout-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;width:min(86vw,320px);height:100vh;overflow-y:auto;z-index:1001;border-radius:0;transform:translate(-105%);transition:transform .22s ease}.sidebar.mobile-open{transform:translate(0)}.mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#081c3a6b;z-index:1000}.two-col{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.not-found-card{padding:18px 16px}}
