:root { --ink:#f4f9fd; --muted:#a8bed0; --line:rgba(77,198,244,.22); --line-strong:rgba(78,218,255,.46); --cyan:#2ed6ff; --cyan-deep:#0b7599; --navy:#071522; --panel:#0a2134; --panel-soft:#0e2b42; --panel-deep:#061522; --green:#6ae6a0; --red:#ff8e92; --amber:#ffb764; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:linear-gradient(180deg,#061826 0,#06131f 38%,#071522 100%); }
button,input,textarea,select { font:inherit; } button { cursor:pointer; } a { color:inherit; text-decoration:none; }
.page-noise { position:fixed; inset:0; pointer-events:none; opacity:.22; background:linear-gradient(90deg,rgba(87,213,255,.025) 1px,transparent 1px),linear-gradient(rgba(87,213,255,.02) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(to bottom,black,transparent 78%); }
.topbar { position:sticky; top:0; z-index:5; height:88px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 max(24px,calc((100vw - 1220px)/2)); border-bottom:1px solid var(--line); background:rgba(4,14,24,.92); backdrop-filter:blur(18px); }
.brand { display:inline-flex; align-items:center; }.brand img { display:block; width:218px; max-width:50vw; height:auto; }.account-chip { padding:9px 12px; border:1px solid rgba(77,198,244,.2); border-radius:8px; color:var(--muted); background:rgba(14,43,66,.6); font-size:13px; font-weight:700; }
.shell { position:relative; width:min(1220px,calc(100% - 40px)); margin:0 auto; padding:32px 0 70px; }.loading-screen { min-height:55vh; display:grid; place-items:center; color:var(--muted); }.loader { width:32px;height:32px;border:3px solid rgba(46,214,255,.2);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite; }@keyframes spin{to{transform:rotate(360deg)}}
.eyebrow { margin:0 0 8px; color:var(--cyan); font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }.hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr); gap:28px; padding:30px 32px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(130deg,rgba(11,48,72,.98),rgba(6,22,35,.98)); box-shadow:0 18px 46px rgba(0,0,0,.22); }.hero::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--cyan); }.hero::after { content:""; position:absolute; width:210px; height:100%; right:-160px; top:0; border-left:1px solid rgba(255,183,100,.34); background:linear-gradient(90deg,transparent,rgba(255,183,100,.09)); transform:skewX(-18deg); }.hero h1 { position:relative; margin:0; max-width:720px; font-size:clamp(30px,4vw,48px); line-height:1.05; letter-spacing:0; }.hero p:not(.eyebrow) { position:relative; max-width:62ch; margin:13px 0 0; color:var(--muted); line-height:1.65; }.hero-side { position:relative; z-index:1; display:grid; align-content:center; gap:12px; padding-left:26px; border-left:1px solid var(--line); }.hero-side strong { color:var(--cyan); font-size:30px; }.hero-side p { margin:0; }
.toolbar { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:30px 0 14px; }.toolbar h2{margin:0;font-size:24px}.toolbar p{margin:5px 0 0;color:var(--muted);font-size:14px}.btn { border:1px solid transparent; border-radius:8px; padding:11px 15px; font-weight:800; line-height:1; }.btn-primary { color:#02111a; background:var(--cyan); box-shadow:0 10px 24px rgba(46,214,255,.16); }.btn-primary:hover { background:#78eaff; }.btn-secondary { color:var(--ink); border-color:var(--line); background:rgba(12,39,60,.72); }.btn-danger{background:rgba(255,91,91,.12);border-color:rgba(255,138,138,.35);color:#ffb0b0}.btn:disabled{opacity:.55;cursor:not-allowed}
.stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:20px 0 12px; }.stat { position:relative; overflow:hidden; min-height:106px; padding:18px; border:1px solid var(--line); border-radius:10px; background:linear-gradient(145deg,rgba(15,48,73,.94),rgba(8,30,46,.96)); box-shadow:0 10px 24px rgba(0,0,0,.12); }.stat::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--cyan); }.stat::after { content:""; position:absolute; width:76px; height:76px; right:-24px; top:-30px; border:1px solid rgba(46,214,255,.18); border-radius:50%; }.stat span { display:block; color:var(--muted); font-size:12px; font-weight:750; margin-bottom:9px; }.stat strong{position:relative;font-size:25px;color:var(--ink)}.stat:first-child{border-color:rgba(46,214,255,.48);background:linear-gradient(145deg,rgba(8,91,121,.66),rgba(8,30,46,.96))}.stat:first-child strong{color:#a7f3ff}.stat:nth-child(2){border-color:rgba(104,193,255,.35);background:linear-gradient(145deg,rgba(24,76,111,.7),rgba(8,30,46,.96))}.stat:nth-child(2)::before{background:#6bc9ff}.stat:nth-child(2)::after{border-color:rgba(107,201,255,.24)}.stat:nth-child(2) strong{color:#b5e8ff}.stat:nth-child(3){border-color:rgba(255,183,100,.36);background:linear-gradient(145deg,rgba(102,67,24,.72),rgba(37,31,25,.96))}.stat:nth-child(3)::before{background:var(--amber)}.stat:nth-child(3)::after{border-color:rgba(255,183,100,.25)}.stat:nth-child(3) strong{color:#ffd59f}
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }.project-card { position:relative; overflow:hidden; display:grid; width:100%; gap:16px; min-height:220px; padding:20px; color:var(--ink); text-align:left; border:1px solid var(--line); border-radius:10px; background:linear-gradient(145deg,rgba(13,45,68,.98),rgba(7,24,38,.98)); box-shadow:0 10px 26px rgba(0,0,0,.14); transition:.18s ease; }.project-card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--cyan); }.project-card:hover,.project-card:focus-visible { transform:translateY(-2px); border-color:var(--line-strong); background:linear-gradient(145deg,rgba(16,57,83,.98),rgba(8,29,45,.98)); outline:none; }.project-card h3{margin:0;font-size:20px}.project-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.project-card__foot{display:flex;justify-content:space-between;align-items:end;margin-top:auto;padding-top:14px;border-top:1px solid rgba(157,179,197,.12);color:var(--cyan);font-weight:800;font-size:13px}.amount{font-size:23px;font-weight:900;color:var(--ink)}.tag{display:inline-flex;width:fit-content;align-items:center;justify-content:center;text-align:center;line-height:1.1;padding:5px 8px;border:1px solid rgba(46,214,255,.28);border-radius:999px;background:rgba(46,214,255,.1);color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.project-card .tag{min-width:108px}
.empty { padding:44px 26px; text-align:center; border:1px dashed rgba(46,214,255,.34); border-radius:10px; background:rgba(8,30,46,.58); color:var(--muted); }.empty h3{color:var(--ink);margin:0 0 8px}.empty p{margin:0 0 18px}
.detail-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; padding:26px 28px; border:1px solid var(--line); border-left:4px solid var(--cyan); border-radius:10px; background:linear-gradient(140deg,rgba(13,51,76,.98),rgba(7,24,38,.98)); }.back { display:inline-block; margin:0 0 13px; color:var(--cyan); font-weight:800; font-size:13px; }.detail-head h1{margin:4px 0 6px;font-size:38px}.detail-head p{margin:0;color:var(--muted)}.summary-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0;}.summary-card{position:relative;overflow:hidden;min-height:104px;padding:18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,rgba(15,48,73,.94),rgba(8,30,46,.96))}.summary-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#6bc9ff}.summary-card span{color:var(--muted);font-size:12px;font-weight:750}.summary-card strong{display:block;margin-top:9px;font-size:26px}.summary-card:nth-child(2)::before{background:var(--amber)}.summary-card:nth-child(2){border-color:rgba(255,183,100,.3);background:linear-gradient(145deg,rgba(97,64,25,.64),rgba(35,30,24,.94))}.summary-card--total{border-color:rgba(46,214,255,.42);background:linear-gradient(135deg,rgba(4,118,149,.58),rgba(10,37,58,.96));}.summary-card--total::before{background:var(--cyan)}.section-card{margin:16px 0;padding:22px;border:1px solid var(--line);border-radius:10px;background:rgba(8,29,45,.92)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.section-head h2{margin:0;font-size:20px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.row-list{display:grid;gap:9px}.data-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px;border-radius:8px;border:1px solid rgba(157,179,197,.14);background:rgba(13,41,63,.58)}.data-row strong{display:block}.data-row small{display:block;margin-top:4px;color:var(--muted)}.data-row__amount{font-weight:900}.data-row__meta{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.notice{padding:12px 14px;border-radius:8px;background:rgba(255,193,102,.09);border:1px solid rgba(255,193,102,.3);color:#ffd595;font-size:13px}
.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(1,8,14,.74);backdrop-filter:blur(8px)}.modal{width:min(760px,100%);max-height:min(780px,calc(100vh - 40px));overflow:auto;border:1px solid var(--line-strong);border-radius:12px;background:#081b2b;box-shadow:0 28px 80px rgba(0,0,0,.5)}.modal__head{display:flex;justify-content:space-between;gap:16px;padding:21px 22px;border-bottom:1px solid var(--line)}.modal__head h2{margin:0;font-size:22px}.modal__head p{margin:6px 0 0;color:var(--muted);font-size:13px}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:25px;line-height:1}.modal__body{padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:7px}.field--full{grid-column:1/-1}.field label{color:var(--muted);font-size:12px;font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(157,179,197,.25);border-radius:8px;padding:11px 12px;background:#061522;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(46,214,255,.12)}.field textarea{min-height:92px;resize:vertical}.modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 22px;border-top:1px solid var(--line)}.assignment-order{margin-bottom:16px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.assignment-order__head{padding:13px 15px;background:rgba(13,41,63,.62)}.assignment-order__head strong{display:block}.assignment-order__head span{color:var(--muted);font-size:12px}.assignment-line{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:15px;align-items:center;padding:13px 15px;border-top:1px solid rgba(157,179,197,.12)}.assignment-line p{margin:0}.assignment-line small{display:block;margin-top:4px;color:var(--muted)}.assignment-line input{text-align:center}.error{margin-bottom:14px;padding:10px 12px;border:1px solid rgba(255,138,138,.36);border-radius:8px;background:rgba(255,138,138,.1);color:#ffc0c0}.file-link{color:var(--cyan);font-size:12px;font-weight:800}
.assignment-order__head{display:flex;align-items:center;justify-content:space-between;gap:14px}.assignment-order__all{padding:9px 11px;font-size:12px;white-space:nowrap}
@media(max-width:850px){.hero{grid-template-columns:1fr}.hero-side{padding:18px 0 0;border-left:0;border-top:1px solid var(--line)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:1fr}.topbar{padding:0 20px}.shell{width:min(100% - 28px,1220px);padding-top:25px}.detail-head{display:grid}.form-grid{grid-template-columns:1fr}.field--full{grid-column:auto}}@media(max-width:560px){.topbar{height:72px}.brand img{width:184px}.account-chip{display:none}.shell{width:min(100% - 24px,1220px);padding-top:18px}.hero{padding:23px 20px}.project-grid,.stats{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column;margin-top:24px}.data-row{grid-template-columns:1fr;gap:7px}.assignment-line{grid-template-columns:1fr}.assignment-order__head{align-items:flex-start;flex-direction:column}.modal-backdrop{padding:10px}.detail-head{padding:22px 20px}.section-card{padding:18px}.section-head{align-items:flex-start;flex-direction:column}}
