:root{--navy:#17324d;--navy2:#244966;--teal:#1f8a8a;--teal2:#64b9b0;--gold:#d7a84a;--bg:#f4f7f9;--line:#dce5ea;--text:#203242;--muted:#6c7b88;--white:#fff;--danger:#b44a4a;--success:#2e7d65}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:14px}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:none;color:#166f70}.site-top{background:var(--navy);min-height:68px;box-shadow:0 3px 18px rgba(23,50,77,.12)}.nav-wrap{max-width:1160px;margin:auto;padding:0 18px;min-height:68px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:10px;color:white!important;font-weight:700;font-size:22px;white-space:nowrap}.brand-mark{width:38px;height:38px;border-radius:11px;background:var(--teal);display:flex;align-items:center;justify-content:center;font-size:18px}.nav-links{display:flex;align-items:center;gap:5px;flex:1}.nav-links a{color:#dce8f0;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600}.nav-links a:hover{background:rgba(255,255,255,.08);color:#fff}.user-area{display:flex;align-items:center;gap:12px;color:#dce8f0;font-size:12px}.logout-link{color:#fff!important;border:1px solid rgba(255,255,255,.22);padding:7px 10px;border-radius:8px}.page-shell{max-width:1160px;margin:0 auto;padding:28px 18px 46px}.page-header{background:#fff;border:1px solid var(--line);border-left:5px solid var(--teal);border-radius:14px;padding:20px 22px;margin-bottom:20px;box-shadow:0 5px 18px rgba(23,50,77,.04)}.page-title{margin:0;color:var(--navy);font-size:30px;line-height:1.2;font-weight:750}.page-subtitle{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.6}.title-icon{display:inline-flex;width:38px;height:38px;border-radius:10px;align-items:center;justify-content:center;background:#e8f5f3;color:var(--teal);font-size:18px;margin-right:7px;vertical-align:middle}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:26px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 8px 28px rgba(23,50,77,.05);align-items:center}.hero h1{font-size:32px;color:var(--navy);margin:0 0 10px;font-weight:750}.hero p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 18px}.hero img{width:100%;max-height:270px;object-fit:contain}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:11px;color:var(--teal);font-weight:750;margin-bottom:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:74px;height:74px;border-radius:50%;right:-20px;top:-22px;background:#eaf4f3}.stat-icon{width:38px;height:38px;border-radius:10px;background:#eef4f7;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:12px}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:700}.stat-value{font-size:27px;color:var(--navy);font-weight:750;margin-top:4px}.section-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 4px 16px rgba(23,50,77,.035)}.section-title{font-size:20px;color:var(--navy);margin:0 0 4px;font-weight:700}.section-note{font-size:13px;color:var(--muted);margin:0 0 16px}.section-heading-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-heading-row .mini-icon{width:34px;height:34px;border-radius:9px;background:#e8f5f3;color:var(--teal);display:flex;align-items:center;justify-content:center}.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.book-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:17px;display:flex;flex-direction:column;min-height:208px}.book-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.book-icon{width:42px;height:42px;border-radius:11px;background:#eef4f7;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:18px}.category-pill{font-size:11px;font-weight:700;color:#276b69;background:#e9f5f3;padding:5px 8px;border-radius:999px}.book-title{font-size:17px;color:var(--navy);font-weight:700;margin:12px 0 5px}.book-meta{font-size:12px;color:var(--muted);line-height:1.7}.book-actions{margin-top:auto;padding-top:13px;border-top:1px solid #edf1f3;display:flex;align-items:center;justify-content:space-between;gap:8px}.availability{font-size:12px;font-weight:700;color:var(--success)}.availability.none{color:var(--danger)}.filter-row{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end}.form-group label{font-size:12px;color:#536575;font-weight:700;margin-bottom:6px}.form-control{border:1px solid #cfdbe1;border-radius:9px;height:40px;box-shadow:none;font-size:13px}.form-control:focus{border-color:var(--teal);box-shadow:0 0 0 2px rgba(31,138,138,.1)}textarea.form-control{height:auto;min-height:84px}.btn{border-radius:9px;font-weight:650;font-size:13px;padding:9px 14px}.btn-main{background:var(--teal);border:1px solid var(--teal);color:#fff}.btn-main:hover,.btn-main:focus{background:#187576;color:#fff}.btn-navy{background:var(--navy);border:1px solid var(--navy);color:#fff}.btn-navy:hover{background:#10283d;color:#fff}.btn-soft{background:#eef4f7;border:1px solid #d7e3e8;color:var(--navy)}.btn-danger-soft{background:#fff3f3;border:1px solid #efcece;color:#9d3c3c}.btn-small{padding:6px 9px;font-size:11px}.validator{display:block;color:#b54848;font-size:11px;margin-top:4px}.message{display:block;margin:0 0 14px;padding:10px 12px;border-radius:9px;font-size:12px}.message.success{background:#ebf6f1;color:#276c57;border:1px solid #cce8dc}.message.error{background:#fff0f0;color:#9b4141;border:1px solid #f0cccc}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.data-grid{width:100%;border-collapse:collapse;background:#fff}.data-grid th{background:#eef4f7;color:var(--navy);font-size:12px;font-weight:750;padding:11px;border-bottom:1px solid var(--line);white-space:nowrap}.data-grid td{padding:10px 11px;border-bottom:1px solid #edf1f3;font-size:12px;vertical-align:middle}.data-grid tr:last-child td{border-bottom:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.choice-list label{font-weight:500;margin-right:14px;margin-left:4px;font-size:12px}.choice-list input{vertical-align:middle}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;background:linear-gradient(135deg,#edf4f6,#f7f4ea)}.auth-card{width:min(980px,100%);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 55px rgba(23,50,77,.12)}.auth-visual{padding:38px;background:#f3f8f8;display:flex;flex-direction:column;justify-content:center}.auth-visual h1{font-size:34px;margin:0 0 9px;color:var(--navy);font-weight:750}.auth-visual p{font-size:13px;color:var(--muted);line-height:1.7}.auth-visual img{width:100%;max-height:250px;margin-top:18px}.auth-form{padding:38px}.auth-title{font-size:24px;color:var(--navy);margin:0 0 6px;font-weight:750}.auth-copy{font-size:13px;color:var(--muted);margin-bottom:20px}.auth-form .btn{width:100%;margin-top:6px}.demo-box{margin-top:16px;padding:11px;border-radius:9px;background:#f7f9fa;font-size:11px;color:#647684;line-height:1.6}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-card{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fff;color:var(--text)}.quick-card:hover{border-color:#b9d6d2;box-shadow:0 6px 16px rgba(23,50,77,.05)}.quick-card .q-icon{font-size:18px;color:var(--teal);margin-bottom:8px}.quick-card strong{display:block;color:var(--navy);font-size:13px}.quick-card span{font-size:11px;color:var(--muted)}.erd-img{width:100%;max-width:900px;border:1px solid var(--line);border-radius:12px;background:#fafafa}.footer{max-width:1160px;margin:0 auto;padding:18px;color:#83919c;font-size:11px;border-top:1px solid #e2e9ed}.empty-state{text-align:center;padding:28px;color:var(--muted);font-size:13px}.empty-state .glyphicon{font-size:30px;color:#b7c8d0;display:block;margin-bottom:9px}
@media(max-width:900px){.nav-wrap{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.nav-links{order:3;width:100%;overflow:auto}.user-area{margin-left:auto}.hero,.auth-card,.two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.book-grid{grid-template-columns:repeat(2,1fr)}.auth-visual{display:none}.filter-row{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}
@media(max-width:560px){.page-title{font-size:25px}.hero h1{font-size:28px}.stats-grid,.book-grid{grid-template-columns:1fr}.brand{font-size:19px}.user-area .user-text{display:none}}

.about-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center}.about-hero h2{margin:0 0 10px;color:var(--navy);font-size:27px;font-weight:750}.about-hero p,.about-copy{font-size:13px;line-height:1.75;color:var(--muted);margin:0}.about-hero img{width:100%;max-height:210px;object-fit:contain}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.about-list{margin:0;padding-left:19px;color:#536575;font-size:13px;line-height:1.9}.tech-chips{display:flex;flex-wrap:wrap;gap:8px}.tech-chips span{display:inline-block;background:#eef6f5;border:1px solid #d5e9e6;color:#236b69;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:650}.team-table td:first-child,.team-table th:first-child{width:70px;text-align:center}.team-table td:last-child,.team-table th:last-child{width:180px;text-align:center}.team-table td{font-size:13px}.team-table th{font-size:12px}@media(max-width:900px){.about-hero,.about-grid{grid-template-columns:1fr}.about-hero img{max-height:180px}}
