@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#15202b;--muted:#71808e;--line:#e7ecef;--paper:#f7f9fa;--white:#fff;--accent:#1c7c74;--accent2:#0f5e58;--soft:#e8f4f1;--danger:#d95c5c;--warn:#c68b32;--shadow:0 20px 60px rgba(20,35,45,.10);font-family:"DM Sans",sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}
.topbar{height:76px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-size:15px;letter-spacing:.04em}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:Manrope;font-weight:800}.brand b{font-weight:800}.ghost-btn{border:1px solid var(--line);padding:10px 15px;border-radius:12px;background:#fff}
.landing{min-height:100vh;background:radial-gradient(circle at 75% 35%,#edf8f5 0,transparent 32%),#f8faf9}.hero{max-width:1240px;margin:auto;min-height:calc(100vh - 76px);display:grid;grid-template-columns:1fr 1.2fr;gap:5vw;align-items:center;padding:30px 5vw 70px}.eyebrow,.section-kicker,.login-kicker{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--accent)}.pulse{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:8px}.hero h1{font:800 clamp(48px,6vw,78px)/.98 Manrope;margin:18px 0}.hero h1 em{font-style:normal;color:var(--accent)}.hero-copy>p{max-width:560px;color:var(--muted);font-size:18px;line-height:1.7}.hero-actions{display:flex;gap:12px;margin:30px 0}.primary-btn,.secondary-btn{border:0;border-radius:13px;padding:14px 19px;font-weight:700}.primary-btn{background:var(--ink);color:#fff;box-shadow:0 10px 25px rgba(21,32,43,.16)}.secondary-btn{background:#fff;border:1px solid var(--line);color:var(--ink)}.wide{width:100%}.trust-row{display:flex;gap:20px;color:var(--muted);font-size:13px}.hero-visual{position:relative}.dashboard-card{background:#fff;border:1px solid #e8edef;border-radius:22px;box-shadow:var(--shadow);overflow:hidden;transform:rotate(1deg)}.mini-head{padding:17px 20px;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;display:flex;justify-content:space-between}.live-dot{color:var(--accent);font-size:10px}.mini-body{display:grid;grid-template-columns:28% 37% 35%;min-height:430px}.mini-body aside,.mini-chat{padding:16px;background:#fbfcfc}.mini-doc{padding:34px 25px;background:#fff}.mini-body small{font-size:9px;color:#87939d}.queue-item{display:flex;gap:8px;padding:12px 5px;border-bottom:1px solid var(--line);font-size:10px;align-items:center}.queue-item.active{background:var(--soft);border-radius:10px}.queue-item div{flex:1}.queue-item small{display:block;margin-top:3px}.avatar{font-style:normal;width:28px;height:28px;background:#dfe9e8;border-radius:50%;display:grid;place-items:center;font-size:9px}.doc-line{height:8px;background:#e9edef;border-radius:4px;margin:15px 0}.doc-line.w80{width:80%}.doc-line.w95{width:95%}.doc-line.w70{width:70%}.doc-line.w90{width:90%}.doc-line.highlight{width:85%;height:18px;background:#e7f3c9}.comment-bubble{margin:20px 0 5px;background:#fff5d8;padding:8px;border-radius:8px;font-size:10px;width:max-content}.chat-bubble{padding:10px;border-radius:12px;margin:12px 0;font-size:10px;line-height:1.4}.student{background:#fff;border:1px solid var(--line)}.mentor{background:var(--soft);margin-left:15px}.typing{font-size:9px;color:var(--muted)}.typing span{letter-spacing:2px;margin-left:4px}
.modal{position:fixed;inset:0;background:rgba(16,28,35,.48);display:none;place-items:center;padding:20px;z-index:20}.modal.show{display:grid}.modal-card{position:relative;background:#fff;border-radius:22px;padding:30px;max-width:650px;width:100%;box-shadow:var(--shadow)}.modal-card.small{max-width:430px}.close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:26px;color:var(--muted)}.modal h2{font:800 28px Manrope;margin:8px 0}.muted{color:var(--muted);line-height:1.6}label{display:block;font-size:12px;font-weight:700;margin:13px 0}input,textarea,select{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff;outline:none}textarea{resize:vertical;min-height:100px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.error{padding:10px;background:#fff0f0;color:#a94444;border-radius:10px;font-size:12px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#e9f6f3,transparent 30%),var(--paper)}.login-card{background:#fff;border:1px solid var(--line);padding:42px;width:min(440px,92vw);border-radius:22px;box-shadow:var(--shadow)}.login-card h1{font:800 31px Manrope}.back-link{display:block;margin-top:20px;text-align:center;color:var(--muted);font-size:12px}
.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;background:#101b22;color:#c8d2d7;padding:24px 16px;display:flex;flex-direction:column}.sidebar .brand{color:#fff;padding:0 8px 30px}.sidebar .brand-mark{background:#fff;color:#101b22}.nav{display:flex;align-items:center;gap:13px;padding:12px;border-radius:10px;color:#94a3ad;font-size:13px;margin:2px 0}.nav.active,.nav:hover{background:#1a2a32;color:#fff}.nav b{margin-left:auto;background:#29414a;border-radius:20px;padding:2px 7px;font-size:10px}.sidebar-bottom{margin-top:auto}.profile{display:flex;align-items:center;gap:9px;padding:12px 8px;border-top:1px solid #26363e;margin-top:12px}.profile i{font-style:normal;width:32px;height:32px;border-radius:50%;background:#31565a;color:#fff;display:grid;place-items:center;font-size:10px}.profile span{flex:1;font-size:11px}.profile small{display:block;color:#73828b;margin-top:3px}.profile strong{color:#74848d}.main{flex:1;padding:30px 36px;overflow:auto}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.breadcrumb{font-size:10px;color:#8b98a0;letter-spacing:.1em}.app-header h1{font:800 25px Manrope;margin:8px 0}.app-header h1 span{color:var(--accent)}.header-actions{display:flex;gap:8px}.icon-btn{border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:11px;position:relative}.icon-btn i{width:6px;height:6px;background:var(--danger);border-radius:50%;position:absolute;right:8px;top:7px}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px}.stat-card .num{font:800 30px Manrope}.stat-card small{display:block;color:var(--muted);margin-top:5px}.stat-card .tag{float:right;font-size:10px;padding:4px 7px;border-radius:20px;background:var(--soft);color:var(--accent)}.content-grid{display:grid;grid-template-columns:1.65fr .75fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px}.panel-head{padding:19px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between}.panel h2{font:800 18px Manrope;margin:5px 0 0}.filter-tabs{display:flex;gap:4px}.filter-tabs button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:7px 9px;border-radius:8px}.filter-tabs button.active{background:var(--paper);color:var(--ink);font-weight:700}.queue-list{padding:5px 10px}.queue-row{display:grid;grid-template-columns:34px 1fr 100px 85px 75px;gap:12px;align-items:center;padding:14px 10px;border-bottom:1px solid #eef1f2}.queue-row:last-child{border:0}.queue-avatar{width:32px;height:32px;border-radius:10px;background:var(--soft);display:grid;place-items:center;font-size:10px;font-weight:800;color:var(--accent)}.ticket-title{font-weight:700;font-size:12px}.ticket-sub{color:var(--muted);font-size:10px;margin-top:4px}.badge{display:inline-block;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:800}.badge.high{background:#fff0e5;color:#b96c29}.badge.normal{background:#eef4f4;color:#52716f}.badge.overdue{background:#ffeaea;color:#bd4c4c}.process-btn{border:0;background:var(--ink);color:#fff;border-radius:8px;padding:8px 9px;font-size:10px;font-weight:700}.activity-item{padding:14px 18px;border-bottom:1px solid var(--line);font-size:11px}.activity-item b{font-size:11px}.activity-item small{display:block;color:var(--muted);margin-top:4px}.loading,.empty-doc{padding:30px;text-align:center;color:var(--muted);font-size:12px}
.student-chat{background:#f5f7f7}.chat-top{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.ticket-chip{font-size:11px;color:var(--muted)}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55a996;margin-right:6px}.chat-layout{max-width:1350px;margin:auto;display:grid;grid-template-columns:1.25fr .75fr;height:calc(100vh - 68px)}.conversation{background:#fff;display:flex;flex-direction:column;border-right:1px solid var(--line)}.conversation-head{padding:24px 30px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.conversation-head h1{font:800 22px Manrope;margin:7px 0}.status-label{font-size:9px;letter-spacing:.1em;color:var(--muted)}.status-label b{color:var(--accent)}.secure{font-size:10px;color:var(--muted)}.messages{flex:1;overflow:auto;padding:25px 30px;background:linear-gradient(#fff,#fafcfc)}.msg{max-width:70%;margin:0 0 16px}.msg.mine{margin-left:auto}.msg .who{font-size:9px;color:var(--muted);margin-bottom:5px}.msg .bubble{padding:11px 13px;border-radius:13px;background:#f1f4f5;font-size:12px;line-height:1.55}.msg.mine .bubble{background:var(--soft)}.msg time{font-size:8px;color:#a3adb3;display:block;margin-top:4px}.typing-line{height:20px;padding:0 30px;color:var(--muted);font-size:10px}.composer{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--line)}.composer textarea{margin:0;min-height:42px;height:42px;resize:none}.composer button{border:0;background:var(--ink);color:#fff;width:42px;height:42px;border-radius:11px}.attach{margin:0;font-size:21px;color:var(--muted)}.review-panel{background:#f8faf9;overflow:auto}.review-head{padding:24px 25px;border-bottom:1px solid var(--line)}.review-head h2{font:800 19px Manrope;margin:6px 0}.doc-box{margin:18px 20px;background:#fff;border:1px solid var(--line);border-radius:12px;min-height:300px;padding:20px}.review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 20px}.review-summary div{background:#fff;border:1px solid var(--line);padding:12px;border-radius:10px}.review-summary b{display:block;font:800 20px Manrope}.review-summary span{font-size:9px;color:var(--muted)}.version-box{margin:18px 20px}.version-title{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted);padding-bottom:8px}.version-item{background:#fff;border:1px solid var(--line);padding:11px;border-radius:9px;margin:5px 0;font-size:10px}.version-item small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:1000px){.hero{grid-template-columns:1fr}.hero-visual{display:none}.stats-grid{grid-template-columns:repeat(3,1fr)}.content-grid{grid-template-columns:1fr}.sidebar{width:70px}.sidebar .brand span:last-child,.sidebar .nav span,.sidebar .nav b,.sidebar .profile span,.sidebar .profile strong{display:none}.chat-layout{grid-template-columns:1fr}.review-panel{display:none}}
@media(max-width:650px){.topbar{padding:0 20px}.hero{padding:30px 20px}.hero h1{font-size:48px}.trust-row{flex-direction:column;gap:7px}.grid2{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.main{padding:20px 14px}.sidebar{display:none}.queue-row{grid-template-columns:34px 1fr 70px}.queue-row .deadline,.queue-row .priority{display:none}.app-header h1{font-size:19px}.chat-top{padding:0 15px}.chat-top .ticket-chip{display:none}.messages{padding:20px 15px}.msg{max-width:85%}}
/* === KTI Helpdesk Pro refresh === */
:root{--accent:#16756d;--accent2:#0d5b55;--paper:#f4f7f7;--ink:#122128;--line:#e2e9ea;--soft:#e7f4f1;--shadow:0 24px 70px rgba(18,33,40,.12)}
body{background:var(--paper)}
.portal-page{min-height:100vh;background:radial-gradient(circle at 80% 12%,rgba(22,117,109,.11),transparent 30%),linear-gradient(135deg,#f8fbfb,#eef4f3);display:flex;flex-direction:column}
.portal-topbar{height:76px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between}
.portal-main{flex:1;display:grid;place-items:center;padding:30px 20px 80px}
.portal-card{width:min(760px,100%);background:rgba(255,255,255,.92);border:1px solid rgba(226,233,234,.9);border-radius:30px;padding:clamp(34px,6vw,64px);text-align:center;box-shadow:var(--shadow);backdrop-filter:blur(12px)}
.portal-icon{width:56px;height:56px;margin:0 auto 22px;border-radius:18px;background:var(--ink);color:#fff;display:grid;place-items:center;font:800 22px Manrope;box-shadow:0 12px 25px rgba(18,33,40,.18)}
.portal-card .eyebrow{margin-bottom:14px}.portal-card h1{font:800 clamp(34px,6vw,58px)/1.05 Manrope;margin:0 0 18px;letter-spacing:-.035em}.portal-copy{max-width:610px;margin:0 auto;color:var(--muted);font-size:16px;line-height:1.75}.portal-actions{display:flex;justify-content:center;gap:10px;margin:30px 0 22px}.portal-points{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:#708087;font-size:11px}
.modal{backdrop-filter:blur(7px);background:rgba(10,25,30,.52)}.modal-card{border:1px solid var(--line);box-shadow:0 28px 90px rgba(10,25,30,.2);max-height:calc(100vh - 32px);overflow:auto}.modal-card-form{max-width:700px}.modal-kicker{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--accent);margin-bottom:8px}.field-help{display:block;color:#8a969c;font-size:10px;font-weight:400;margin-top:6px}.hidden{display:none!important}.error{margin:12px 0}.primary-btn:disabled,.process-btn:disabled{opacity:.55;cursor:not-allowed}
.chat-top{box-shadow:0 1px 0 rgba(18,33,40,.04);position:sticky;top:0;z-index:5}.chat-top-actions{display:flex;gap:7px}.chat-top-actions .ghost-btn{font-size:10px;padding:8px 11px}.queue-info{font-size:11px;color:var(--muted);margin-top:5px}.queue-info b{color:var(--accent)}.queue-done{color:var(--accent);font-weight:800}.new-notice{margin:15px 30px 0;padding:12px 14px;border:1px solid #cfe8e2;background:#f0faf7;border-radius:11px;color:#42615e;font-size:11px;line-height:1.55}.new-notice strong{color:var(--accent)}.message-file{margin-top:8px;padding:8px 9px;background:rgba(255,255,255,.65);border:1px solid rgba(18,33,40,.08);border-radius:8px;font-size:10px}.empty-chat{text-align:center;color:var(--muted);font-size:12px;padding:40px}.toast{position:fixed;right:20px;bottom:20px;z-index:50;background:#14252c;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:0 15px 35px rgba(10,25,30,.2);font-size:11px;transform:translateY(15px);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#9d4141;color:#fff}.companion-controls{padding:0 20px 20px}.companion-controls select{margin-bottom:8px}.doc-note{font-size:11px;color:#71808e;line-height:1.6}.status-label b{text-transform:uppercase}
.sidebar{background:linear-gradient(180deg,#0d1a20,#10252a)}.sidebar .brand{letter-spacing:.03em}.nav{transition:.18s}.nav.active,.nav:hover{background:#193239}.stat-card{transition:.18s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(20,35,45,.07)}.stat-card .tag.alert{background:#fff0e8;color:#b85c38}
@media(max-width:700px){.portal-topbar{height:66px}.portal-topbar .ghost-btn{font-size:10px;padding:8px 10px}.portal-card{border-radius:22px;padding:34px 22px}.portal-card h1{font-size:38px}.portal-copy{font-size:14px}.portal-actions{flex-direction:column}.portal-actions button{width:100%}.portal-points{flex-direction:column;gap:7px}.chat-top{height:auto;min-height:64px;padding:10px 14px}.chat-top .ticket-chip{display:none}.chat-top-actions .ghost-btn:first-child{display:none}.conversation-head{padding:18px 16px}.new-notice{margin:12px 15px 0}.messages{padding:18px 15px}.composer{padding:10px}.review-panel{display:none}.msg{max-width:90%}.modal-card{padding:25px 18px}.modal-card h2{font-size:24px}}
