*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;margin:0;background:#f4f5f7;color:#1c2230}header{background:#0d3b66;color:#fff;padding:16px 16px 14px;position:-webkit-sticky;position:sticky;top:0;z-index:10}header h1{margin:0;font-size:18px;color:#ffb74d}header .sub{font-size:13px;opacity:.85;margin-top:3px}header .proj{margin-top:8px}header .proj select{font:inherit;font-size:13px;padding:4px 8px;border-radius:7px;border:none}header .userbar{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;opacity:.95}header .userbar .ubactions{display:flex;align-items:center;gap:8px}header .userbar .ublink{font-size:12px;font-weight:600;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.5);border-radius:7px;padding:4px 10px}header .userbar .ublink .navbadge{display:inline-block;min-width:17px;margin-left:6px;padding:0 5px;border-radius:999px;background:#ffd34d;color:#7a4a00;font-size:11px;font-weight:800;line-height:17px;text-align:center;vertical-align:middle}header .userbar .ublink.active{background:rgba(255,255,255,.92);color:#0d3b66;border-color:#fff}header .userbar button{font:inherit;font-size:12px;font-weight:600;padding:4px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;cursor:pointer}header .userbar .uname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header .userbar a.uname{color:#fff;text-decoration:none;cursor:pointer}header .userbar a.uname:hover{text-decoration:underline}header .userbar .ubtoggles{position:relative;display:flex;align-items:center;gap:8px}header .userbar .hamb{display:none;font-size:18px;line-height:1;padding:3px 11px}header .userbar .pcicon{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;padding:3px 9px;border:1px solid rgba(255,255,255,.5);border-radius:7px;color:#fff;text-decoration:none}header .userbar .pcicon-n{position:absolute;top:-7px;right:-7px;box-sizing:border-box;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e23b3b;color:#fff;font-size:10px;font-weight:800;line-height:17px;text-align:center;box-shadow:0 0 0 2px #0d3b66}header .userbar .pcicon.flash{animation:pcflash 1s ease-in-out infinite}@keyframes pcflash{0%,to{box-shadow:0 0 0 0 rgba(226,59,59,0);border-color:rgba(255,255,255,.5)}50%{box-shadow:0 0 0 3px rgba(226,59,59,.65);border-color:#e23b3b}}header .userbar .menubadge{display:none;position:absolute;top:-7px;right:-7px;z-index:2;box-sizing:border-box;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e23b3b;color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center;pointer-events:none;box-shadow:0 0 0 2px #0d3b66}header .userbar .noteicon{display:none;font-size:15px;line-height:1;padding:3px 10px}.notepop-overlay{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.18);display:flex;justify-content:center;align-items:flex-start;padding:64px 16px 16px}.notepop{position:relative;width:100%;max-width:330px;background:rgba(255,236,140,.92);border:1px solid rgba(120,100,0,.28);border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.32);padding:12px 12px 14px;transform:rotate(-1.5deg)}.notepop-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:700;color:#6b5800}.notepop-x{color:#6b5800;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.notepop-t,.notepop-x{background:transparent;border:none}.notepop-t{width:100%;box-sizing:border-box;min-height:130px;resize:vertical;outline:none;font:inherit;font-size:15px;color:#3d3300}.notepop-t::placeholder{color:#9c8a30}.cmticon{display:none;font-size:17px;line-height:1;padding:6px 10px;border:1px solid #c7cfdb;border-radius:8px;background:#fff;cursor:pointer}.cmticon:not(.has){filter:grayscale(1);opacity:.45}.cmticon.has{border-color:#0d3b66;background:#e8f0fa}.rbnoteicon{display:none;font-size:16px;line-height:1;padding:6px 10px;border:1px solid #c7cfdb;border-radius:8px;background:#fff;cursor:pointer}.rbnoteicon:not(.has){filter:grayscale(1);opacity:.5}.rbnoteicon.has{border-color:#9a6b00;background:#fdf3df}.rnotepop{background:rgba(255,213,160,.93);border-color:rgba(140,85,0,.3);transform:rotate(-1deg)}.rnotepop .notepop-h,.rnotepop .notepop-x{color:#7a4a00}.rnotepop textarea.notepop-t{color:#4a2d00}.rnotepop textarea.notepop-t::placeholder{color:#a87b3d}.cmtpop{background:rgba(174,214,248,.92);border-color:rgba(0,70,120,.28);transform:rotate(1.5deg)}.cmtpop .notepop-h,.cmtpop .notepop-x{color:#0d3b66}.cmtpop .cmtpop-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmtpop textarea.notepop-t{color:#102c44}.cmtpop textarea.notepop-t::placeholder{color:#5b7d9b}.settings header{display:flex;align-items:center;justify-content:space-between}.settings header .back{color:#fff;text-decoration:none;font-size:13px}.setcard{max-width:520px;margin:20px auto;background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.08);gap:12px}.setcard,.setcard label{display:flex;flex-direction:column}.setcard label{gap:6px;font-size:13px;color:#5a6477;font-weight:600}.setcard input{font:inherit;font-size:15px;padding:10px 12px;border:1px solid #c7cfdb;border-radius:9px}.setcard label.showpw{flex-direction:row;align-items:center;gap:8px;font-weight:500;cursor:pointer}.setcard label.showpw input{width:18px;height:18px;padding:0;flex:none;cursor:pointer}.setcard .hint{font-size:12px;color:#7a8395;margin:0}.setcard button{align-self:flex-start;padding:10px 18px;font-size:14px;font-weight:700;border:none;border-radius:9px;background:#0d3b66;color:#fff;cursor:pointer}.setcard .setmsg{font-size:13px;color:#1b7a32;font-weight:600}.settabs{display:flex;justify-content:center;gap:4px;margin:18px 0 0;border-bottom:2px solid #e3e7ee}.settab{font:inherit;font-size:14px;font-weight:700;color:#5a6477;background:none;padding:9px 16px;cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-2px}.settab:hover{color:#0d3b66}.settab.active{color:#0d3b66;border-bottom-color:#0d3b66}.disccard{gap:8px}.disccard .disch{font-size:15px;font-weight:800;color:#0d3b66;margin:0 0 4px}.discrow{display:flex;align-items:center;gap:6px}.discrow.inactive{opacity:.55}.discrow input{padding:7px 8px}.discrow .dicon,.discrow input{font:inherit;font-size:14px;border:1px solid #c7cfdb;border-radius:8px}.discrow .dicon{padding:7px 6px;background:#fff;min-width:118px}.discrow .dcode{width:74px;text-transform:uppercase}.discrow .dname{flex:1 1;min-width:0}@media (min-width:641px){.disccard{max-width:720px}.discrow .dname{min-width:240px}}.discrow .actlabel{font-size:12px;color:#5a6477;display:flex;align-items:center;gap:3px;white-space:nowrap}.discrow .dcount{font-size:11px;font-weight:700;color:#5a6477;background:#eef1f5;border-radius:999px;padding:2px 7px;white-space:nowrap}.discrow .udel:disabled,.discrow .usave:disabled{opacity:.5;cursor:default}.discrow .usave{align-self:auto;padding:7px 12px;font-size:13px}.discrow .udel{padding:7px 10px;font-size:13px;font-weight:700;border:1px solid #e0b4b4;border-radius:8px;background:#fff;color:#c62828;cursor:pointer}.subroster{margin:8px 12px 0}.subroster-h{font-size:15px;margin:6px 4px 8px;display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:#6b4f2a}.subroster-h .chev{font-size:13px;color:#5a6477;width:14px}.subroster-h .cnt{background:#6b4f2a;color:#fff;font-size:12px;border-radius:10px;padding:1px 8px}.subroster-hint{color:#5a6477;font-size:13px;margin:0 4px 8px;max-width:640px}.subroster-list{display:flex;flex-direction:column;gap:6px;max-width:720px}.rosterrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rosterrow .rostername{flex:1 1;min-width:160px;font-weight:600;color:#0d3b66;font-size:14px}.rosterrow input{font:inherit;font-size:14px;padding:7px 8px;border:1px solid #c7cfdb;border-radius:8px}.rosterrow .dcode{width:130px}.rosterrow .usave{padding:7px 12px;font-size:13px}.rosterrow .udel:disabled,.rosterrow .usave:disabled{opacity:.5;cursor:default}.rosterrow .udel{padding:7px 10px;font-size:13px;font-weight:700;border:1px solid #e0b4b4;border-radius:8px;background:#fff;color:#c62828;cursor:pointer}.setcard .setmsg.err{color:#c62828}.setcard .wdays-l{font-size:14px;font-weight:600;color:#1c2230;margin-bottom:6px}.setcard .wdays-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.upov{display:none}@keyframes spin{to{transform:rotate(1turn)}}.gbusy{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(13,23,38,.3)}.gbusy-spin{width:72px;height:72px;border:7px solid rgba(140,198,250,.35);border-top-color:#0d3b66;border-radius:50%;animation:spin .9s linear infinite}.msdiamond{color:#e91e8c;font-size:.95em}.tid{display:inline-block;font-weight:800;color:#0d3b66;background:#eef1f5;border:1px solid #dbe1ea;border-radius:5px;margin-right:5px}.disctag,.tid{font-size:11px;padding:0 5px;vertical-align:middle}.disctag{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-weight:700;color:#3a4252;background:#eef6ee;border:1px solid #cfe3cf;border-radius:5px}.disctag .disctagi{font-size:12px}.disctag.subtag{color:#6b4f2a;background:#fdf3e6;border-color:#e8d4b6}@media (max-width:640px){.disctag .disctagn{display:none}.disctag{gap:0;padding:0 4px}}.tname.tinfo{cursor:pointer}.infopop{background:#fff;border-color:#c7cfdb;transform:none}.infopop .notepop-h,.infopop .notepop-x{color:#0d3b66}.infotbl{width:100%;border-collapse:collapse;font-size:14px}.infotbl td{padding:7px 4px;border-top:1px solid #eef0f3}.infotbl td:first-child{color:#5a6477;font-size:13px}.infotbl td:last-child{text-align:right;font-weight:700;color:#0d3b66;white-space:nowrap}.infopop{max-width:560px;max-height:82vh;overflow:auto}.thist{margin-top:12px;border-top:1px solid #e6e9ef;padding-top:10px;overflow-x:auto}.thist-h{font-size:12px;font-weight:800;color:#0d3b66;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.thisttbl{width:100%;border-collapse:collapse;font-size:12px}.thisttbl th{text-align:left;padding:4px 6px;background:#eef1f5;color:#0d3b66;font-size:11px;white-space:nowrap}.thisttbl td{padding:4px 6px;border-top:1px solid #eef0f3;vertical-align:top}.thisttbl .thd{white-space:nowrap;font-weight:700;color:#0d3b66}.thisttbl .thcmt{color:#5a6477;word-break:break-word;min-width:120px}.thisttbl .thby{white-space:nowrap;color:#7a8699;font-size:11px}.thedits{margin-top:10px}.thedits-h{font-size:12px;font-weight:800;color:#7a4a00;margin-bottom:4px}.theditrow{font-size:12px;color:#3a4252;padding:3px 0;border-top:1px solid #f0ece0}.theditrow .editat{color:#9aa3b2}.glegend{display:flex;gap:16px;padding:10px 16px 0;font-size:12px;color:#5a6477;align-items:center;flex-wrap:wrap}.glegend .gl{display:inline-block;width:18px;height:9px;border-radius:3px;vertical-align:middle;margin-right:5px}.glegend .gl.plan{background:#b8cce4}.glegend .gl.done{background:#1b7a32}.glegend .gl.sum{background:#5a6477;height:5px}.glegend .gl.ms{color:#e91e8c;width:auto;height:auto;font-size:13px}.glegend .gl.today{background:#c62828;width:2px;height:14px}.ganttwrap{margin:10px 16px 24px;overflow-x:auto;background:#fff;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.gantt{border-collapse:collapse;table-layout:fixed}.gantt td{padding:0}.gantt .gname{position:-webkit-sticky;position:sticky;left:0;z-index:2;width:320px;min-width:320px;max-width:320px;background:#fff;font-size:12px;padding:3px 8px;border-bottom:1px solid #f0f2f5;border-right:1px solid #dfe3ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt .gsum .gname{font-weight:700;color:#0d3b66}.gantt .gname .gnamerow{display:flex;align-items:center;gap:4px}.gantt .gname .gnametxt{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt .gname .gdisc{flex:none;width:46px;font:inherit;font-size:11px;padding:1px 2px;border:1px solid #c7cfdb;border-radius:6px;background:#fff}.gantt .gname .gdiscicon{flex:none;font-size:13px}.gantt .gname .gdiscbtn{flex:none;font-size:12px;line-height:1;padding:2px 5px;border:1px solid #c7cfdb;border-radius:6px;background:#fff;color:#5b6573;cursor:pointer}.gantt .gname .gdiscbtn:hover{border-color:#0d3b66;color:#0d3b66}.gantt .gname .gsubbtn,.gantt .gname .gsubicon{flex:none;font-size:12px}.gantt .gname .gsubbtn{line-height:1;padding:2px 5px;border:1px solid #c7cfdb;border-radius:6px;background:#fff;color:#5b6573;cursor:pointer}.gantt .gname .gsubbtn:hover{border-color:#6b4f2a;color:#6b4f2a}.gsubmodal{background:#fff;border-radius:12px;width:100%;max-width:380px;box-shadow:0 14px 34px rgba(0,0,0,.32)}.gsublist{max-height:50vh;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:10px 12px}.gsubopt{display:flex;align-items:center;gap:8px;font-size:14px;padding:5px 6px;border-radius:6px;cursor:pointer}.gsubopt:hover{background:#f1f4f9}.gsubempty{font-size:13px;color:#9aa3b2;padding:8px}.gsubacts{display:flex;gap:8px;padding:0 12px 12px}.gsubacts .usave{padding:8px 14px;font-size:14px}.gsubx{padding:8px 12px;font-size:14px;border:1px solid #c7cfdb;border-radius:8px;background:#fff;color:#5b6573;cursor:pointer}.gtemp{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.04em;color:#fff;background:#e07b00;border-radius:4px;padding:0 4px;margin-right:5px;vertical-align:middle}.gaddbtn{margin-left:auto;font:inherit;font-size:12px;font-weight:700;padding:4px 12px;border:1px solid #0d3b66;border-radius:8px;background:#0d3b66;color:#fff;cursor:pointer}.gaddov{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.gaddmodal{background:#fff;border-radius:12px;width:100%;max-width:420px;box-shadow:0 14px 34px rgba(0,0,0,.32)}.gaddh{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #eef0f3;font-weight:800;color:#0d3b66}.gaddx{font:inherit;border:none;background:none;cursor:pointer;color:#5a6477;font-size:16px}.gaddform{padding:14px;gap:10px}.gaddform,.gaddform label{display:flex;flex-direction:column}.gaddform label{gap:4px;font-size:12px;font-weight:600;color:#5a6477}.gaddform input,.gaddform select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid #c7cfdb;border-radius:8px}.gaddrow{display:flex;gap:10px}.gaddrow label{flex:1 1}.gadderr{color:#c62828;font-size:13px;font-weight:600}.gaddform .usave{align-self:flex-start;margin-top:4px;padding:9px 18px;font-size:14px;font-weight:700;border:none;border-radius:9px;background:#0d3b66;color:#fff;cursor:pointer}.gaddform .usave:disabled{opacity:.5;cursor:default}.gantt .gcell{border-bottom:1px solid #f0f2f5}.gantt .gtrack{position:relative;height:22px}.gaxis .gtrack{height:26px}.gmonth{position:absolute;top:5px;font-size:10px;color:#9aa3b2;transform:translateX(2px);white-space:nowrap}.ggrid{width:1px;background:#f0f2f5}.ggrid,.gtoday{position:absolute;top:0;bottom:0}.gtoday{width:2px;background:rgba(198,40,40,.65);z-index:1}.gbar{position:absolute;top:5px;height:12px;background:#b8cce4;border-radius:4px;overflow:hidden}.gbar.sum{top:8px;height:6px;background:#5a6477;border-radius:2px}.gfill{left:0;top:0;bottom:0;background:#1b7a32}.gfill,.gms{position:absolute}.gms{top:1px;color:#e91e8c;font-size:14px;transform:translateX(-6px)}.gms.hit{color:#1b7a32}.lockbar{margin:10px 16px 0;padding:10px 14px;background:#fdf3df;border:1px solid #e3c98f;border-radius:10px;color:#7a4a00}.pstatus.missing{background:#fde2e2;color:#c62828}.pcard.nonwork{opacity:.65}.nwbtn,.pcard.nonwork .pname{color:#5a6477}.nwbtn{font:inherit;font-size:12px;font-weight:600;padding:5px 10px;border:1px solid #c7cfdb;border-radius:7px;background:#fff;cursor:pointer}.nwbtn:hover{border-color:#9a6b00;color:#9a6b00}.auditwrap{padding:12px 16px;overflow-x:auto}.audit{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08);font-size:13px}.audit th{text-align:left;padding:9px 10px;background:#eef1f5;color:#0d3b66;font-size:12px;white-space:nowrap}.audit td{padding:7px 10px;border-top:1px solid #eef0f3;vertical-align:top}.audit .aat{white-space:nowrap;color:#5a6477}.audit .ausr{font-weight:600}.audit .aact,.audit .ausr{white-space:nowrap}.audit .adet{color:#5a6477;word-break:break-word}.audit .aempty{text-align:center;color:#9aa3b2;padding:18px}.auditfilters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:14px 16px 2px}.auditfilters label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;color:#5a6477}.auditfilters .afgrow{flex:1 1 180px}.auditfilters input,.auditfilters select{font:inherit;font-size:13px;padding:6px 8px;border:1px solid #c5cedb;border-radius:8px;background:#fff;color:#1a2230}.auditfilters .afbtns{display:flex;gap:8px}.auditfilters .afbtns button{font:inherit;font-size:13px;font-weight:600;padding:7px 14px;border-radius:8px;border:1px solid #c5cedb;cursor:pointer}.auditfilters .afbtns button[type=submit]{background:#0d3b66;color:#fff;border-color:#0d3b66}.auditfilters .afbtns button[type=button]{background:#fff;color:#0d3b66}.auditpager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 16px 20px}.auditpager a{font-size:13px;font-weight:600;color:#0d3b66;text-decoration:none;border:1px solid #c5cedb;border-radius:8px;padding:7px 14px;background:#fff}.auditpager a:hover{background:#eef1f5}.auditpager .apgnum{font-size:12px;color:#5a6477}.cards{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap}.card{flex:1 1 90px;background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.card .n{font-size:22px;font-weight:700}.card .l{font-size:11px;color:#5a6477;text-transform:uppercase;letter-spacing:.3px}.card.red .n{color:#c62828}.card.blue .n{color:#0d3b66}.card.green .n{color:#1b7a32}.wrap{padding:0 12px 90px}h2.sec{font-size:15px;margin:18px 4px 8px;display:flex;align-items:center;gap:8px}h2.sec.toggle{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}h2.sec .chev{font-size:13px;color:#5a6477;width:14px}h2.uph{color:#1b7a32}.cnt{background:#0d3b66;color:#fff;font-size:12px;border-radius:10px;padding:1px 8px}.uph .cnt{background:#1b7a32}table.grid{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.07)}thead th{background:#eef1f5;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:#5a6477;padding:8px 6px;text-align:left}td{padding:10px 6px;border-top:1px solid #eef0f3;vertical-align:top;font-size:14px}.task .tname{font-weight:600}.task .tloc{font-size:12px;color:#5a6477;margin-top:2px}.task .tmeta{font-size:11px;color:#7a8395;margin-top:3px}.badge{font-size:10px;padding:1px 6px;border-radius:8px;font-weight:700}.badge.green{background:#e3f4e6;color:#1b7a32}.badge.yellow{background:#fff3d6;color:#9a6b00}.badge.red{background:#fde2e2;color:#c62828}.badge.blue{background:#e2ecf7;color:#0d3b66}.work{white-space:nowrap}.seg,.seg span{display:inline-block}.seg span{padding:6px 10px;border:1px solid #c7cfdb;font-size:13px;font-weight:600;cursor:pointer}.seg.l span{border-radius:7px 0 0 7px}.seg.r span{border-radius:0 7px 7px 0;border-left:none}.seg.l.on span{background:#1b7a32;border-color:#1b7a32;color:#fff}.seg.r.on span{background:#c62828;border-color:#c62828;color:#fff}.daneswitch{position:relative;display:inline-block;width:64px;height:28px;padding:0;border:1px solid #c7cfdb;border-radius:999px;background:#dfe3ea;cursor:pointer;vertical-align:middle;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.daneswitch.ro,.daneswitch:disabled{cursor:default;opacity:.85}.daneswitch .lbl{position:absolute;top:0;height:26px;line-height:26px;font-size:12px;font-weight:700;color:#fff;opacity:0;pointer-events:none}.daneswitch .lbl.da{left:11px}.daneswitch .lbl.ne{right:11px}.daneswitch.da{background:#1b7a32;border-color:#1b7a32}.daneswitch.ne{background:#c62828;border-color:#c62828}.daneswitch.da .lbl.da,.daneswitch.ne .lbl.ne{opacity:1}.daneswitch .knob{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .15s ease}.daneswitch.da .knob{left:36px}.emp .empnum{width:56px;border:1px solid #c7cfdb;border-radius:7px;padding:6px;font:inherit;font-size:14px;text-align:center}.prog{white-space:nowrap}.prog .progslider{width:90px;vertical-align:middle;accent-color:#1b7a32;cursor:pointer}.prog .progslider:disabled{cursor:default;opacity:.6}.prog .progpct{display:inline-block;min-width:34px;margin-left:6px;font-size:13px;font-weight:600;color:#0d3b66}.prog .qtynum{width:64px;border:1px solid #c7cfdb;border-radius:7px;padding:6px;font:inherit;font-size:14px;text-align:right}.prog .qtynum:disabled{opacity:.6}.prog .qtytarget{display:inline-block;margin-left:4px;font-size:12px;color:#5a6477}.filebtns{display:inline-flex;gap:6px}.cmt textarea{width:100%;min-width:120px;border:1px solid #c7cfdb;border-radius:7px;padding:6px;font:inherit;font-size:13px;resize:vertical;height:36px;transition:height .15s ease}.cmt textarea:focus,.cmt textarea:hover{height:96px;outline:none;border-color:#0d3b66}.daycomment{margin:18px 30px 4px}.daycomment .dcl{display:block;font-size:13px;font-weight:600;color:#0d3b66;margin-bottom:6px}.daycomment .dcinput{width:100%;box-sizing:border-box;border:1px solid #e3c98f;border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;resize:vertical;min-height:80px;background:#fffbe6}.daycomment .dcinput:focus{outline:none;border-color:#0d3b66}.daycomment .dcinput[readonly]{background:#f4f6f9;color:#33404f}.filebtn{display:inline-block;padding:6px 10px;background:#eef1f5;border:1px solid #c7cfdb;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer}.fname{font-size:11px;color:#1b7a32;margin-top:4px;max-width:160px}.fname .pname{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fname .geolink{display:inline-block;margin-top:2px;color:#0d3b66;text-decoration:none;font-weight:600}.fname .thumb{display:block;width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid #c7cfdb;margin-bottom:3px}.fname .thumbbtn{position:relative;display:inline-block;padding:0;border:none;background:none;cursor:pointer}.fname .pcount{position:absolute;top:-6px;right:-6px;background:#0d3b66;color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 4px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modalbox{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modalhd{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#0d3b66;color:#fff;font-weight:700}.modalhd button{background:none;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer}.modalgrid{display:flex;flex-wrap:wrap;gap:10px;padding:16px;overflow:auto}.gwrap{position:relative}.gdel{position:absolute;top:6px;right:6px;font-size:14px;line-height:1;padding:6px 8px;border:none;border-radius:8px;background:rgba(28,34,48,.72);color:#fff;cursor:pointer}.gdel:hover{background:#c62828}.gphoto{display:block;text-decoration:none;color:inherit}.gphoto img{width:160px;height:160px;object-fit:cover;border-radius:8px;border:1px solid #ccd3dd;display:block}.gphoto .gcap{display:block;font-size:11px;color:#0d3b66;font-weight:600;margin-top:3px;max-width:160px}.empty{text-align:center;color:#9aa3b2;padding:16px}.wgrp{border:1px solid #cbd8ec;border-radius:10px;overflow:hidden;background:#fff}.wgrph{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wgrpl0>.wgrph{background:#e7eef8}.wgrpl1>.wgrph{background:#eef3fa}.wgrpl2>.wgrph{background:#f5f8fc}.wgrph .chev{color:#0d3b66;width:14px;margin-top:2px}.wgrpname{flex:1 1;font-weight:800;font-size:13.5px;color:#0d3b66;line-height:1.3;word-break:break-word}.wgrpl1 .wgrpname{font-size:13px}.wgrpl2 .wgrpname{font-size:12.5px;font-weight:700}.wgrph .cnt{background:#fff;color:#0d3b66;border:1px solid #c7d3e5;align-self:flex-start}.wgrp .wgrp{border:none;border-top:1px solid #e3e9f3;border-radius:0;margin-left:10px}.wgrp table.grid{border-radius:0;box-shadow:none}.wgrpdiv{border-top:2px dashed #b9c5d8;margin:8px 4px}.report{padding-bottom:130px}.actions{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #dfe3ea;padding:10px 12px;display:flex;gap:8px;box-shadow:0 -2px 8px rgba(0,0,0,.06)}.actions button{flex:1 1;padding:12px;font-size:15px;font-weight:700;border:none;border-radius:10px;cursor:pointer;color:#fff}#saveBtn{background:#0d3b66}#submitBtn{background:#1b7a32}#unlockBtn{background:#9a6b00}#saveBtn.dirty{box-shadow:0 0 0 3px #ffd24a;animation:pulse-save 1.4s ease-in-out infinite}@keyframes pulse-save{0%,to{box-shadow:0 0 0 3px rgba(255,210,74,.55)}50%{box-shadow:0 0 0 5px rgba(255,210,74,.95)}}.unsaved{position:fixed;bottom:64px;left:0;right:0;font-size:12px;font-weight:600;color:#9a6b00;text-align:center;padding:4px;pointer-events:none}.actions button:disabled,.rbactions button:disabled{opacity:.55;cursor:default}#saveBtn.dirty:disabled{animation:none}.report textarea[readonly]{background:#f1f3f5;color:#6b7280;cursor:default}.seg.ro span{cursor:default;opacity:.75}.lockbar{margin:10px 12px 0;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600}.lockbar.ro{background:#fde2e2;color:#c62828}.lockbar.adm{background:#fff3d6;color:#9a6b00}.reviewbar{margin:10px 12px 0;padding:10px 12px;border-radius:9px;font-size:13px}.reviewbar.pending{background:#fff3d6;color:#9a6b00}.reviewbar.approved{background:#e3f4e6;color:#1b7a32}.reviewbar.rejected{background:#fde2e2;color:#c62828}.reviewbar .rbstatus{font-weight:700}.reviewbar .rbnote{margin-top:4px;font-style:italic}.reviewbar .rbhint{margin-top:4px;font-weight:600}.reviewbar .rbactions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.reviewbar .rbnoteinput{flex:1 1 160px;font:inherit;font-size:13px;padding:7px 9px;border:1px solid #c7cfdb;border-radius:8px}.reviewbar .rbactions button{font:inherit;font-size:13px;font-weight:700;padding:7px 14px;border:none;border-radius:8px;color:#fff;cursor:pointer}.reviewbar .rbactions .approve{background:#1b7a32}.reviewbar .rbactions .reject{background:#c62828}.smebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:1px dashed rgba(0,0,0,.15)}.smebadge{font-weight:700;background:rgba(255,255,255,.55);border-radius:999px;padding:3px 10px}.smebar.cleared .smebadge{background:#d6f0db;color:#1b7a32}.smelist{display:flex;gap:6px;flex-wrap:wrap}.smechip{font-size:12px;border-radius:999px;padding:2px 8px}.smechip.approved{background:#d6f0db;color:#1b7a32}.smechip.rejected{background:#f7d4d4;color:#c62828}.smeactions .smemine{flex:1 1 100%;font-size:12px;opacity:.85}.smenoteinput{flex:1 1 160px;font:inherit;font-size:13px;padding:7px 9px;border:1px solid #c7cfdb;border-radius:8px}.cthread{margin:12px 12px 0;border:1px solid #e6e9ee;border-radius:10px;padding:10px 12px}.cthead{font-weight:600;color:#0d3b66;margin-bottom:8px;font-size:14px}.clist{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}.chint{color:#7a8699;font-size:13px}.cmsg{background:#f4f6f9;border-radius:8px;padding:6px 9px;max-width:85%;align-self:flex-start}.cmsg.mine{background:#e2ecf7;align-self:flex-end}.cmeta{font-size:11px;color:#5a6b80;margin-bottom:2px}.cbody{font-size:14px;white-space:pre-wrap;word-break:break-word}.cinput{display:flex;gap:8px;margin-top:10px}.cinput input{flex:1 1;font:inherit;font-size:14px;padding:8px 10px;border:1px solid #c7cfdb;border-radius:8px}.cinput button{font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border:none;border-radius:8px;background:#0d3b66;color:#fff;cursor:pointer}.threadbtn{margin-left:6px;border:none;background:#eef1f5;border-radius:999px;padding:1px 8px;font-size:12px;cursor:pointer;color:#5a6b80}.threadbtn.has{background:#e2ecf7;color:#0d3b66;font-weight:600}.cthreadpop .clist{max-height:50vh}.editlog{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(0,0,0,.15)}.editlog-h{font-weight:700;margin-bottom:4px}.editrow{font-size:12.5px;line-height:1.5}.editrow .edittask{font-weight:600}.editrow .editat{opacity:.7}.plist{padding:12px;display:flex;flex-direction:column;gap:10px}.pcard{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-radius:11px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.08);text-decoration:none;color:inherit}.pcard:active{background:#f0f3f8}.pcard .picon{flex:0 0 40px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#e2ecf7;color:#0d3b66;font-size:22px;line-height:1}.pcard-main{flex:1 1 auto;min-width:0}.pcard .pcode{font-size:12px;color:#5a6477;font-weight:600}.pcard .pname{font-size:16px;font-weight:700;color:#1c2230;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcard-meta{text-align:right;white-space:nowrap}.pcard.nonwork .picon{background:#eef1f5;color:#9aa3b2}.iconpick{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.iconpick .iconpreview{font-size:18px;margin-left:4px}.iconopt{font-size:18px;line-height:1;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d3d9e3;border-radius:8px;background:#fff;cursor:pointer;padding:0}.iconopt.sel{border-color:#0d3b66;background:#e2ecf7;box-shadow:0 0 0 2px rgba(13,59,102,.25)}.iconopt.clear{font-size:14px;color:#9aa3b2}.adminproj{display:flex;gap:16px;align-items:flex-start;padding:12px;max-width:1120px;margin:0 auto}.ap-list{flex:0 0 290px;display:flex;flex-direction:column;gap:8px;position:-webkit-sticky;position:sticky;top:12px}.ap-filter{font:inherit;font-size:14px;padding:8px 10px;border:1px solid #c7cfdb;border-radius:8px;background:#fff}.ap-scroll{display:flex;flex-direction:column;gap:4px;max-height:72vh;overflow:auto;padding-right:2px}.ap-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid #e6e9ee;border-radius:9px;padding:8px 10px;cursor:pointer;font:inherit}.ap-item:hover{background:#f4f6f9}.ap-item.sel{border-color:#0d3b66;background:#e2ecf7}.ap-new{justify-content:center;font-weight:700;color:#0d3b66;background:#eef1f5}.ap-ic{font-size:20px;width:28px;text-align:center;flex:0 0 auto}.ap-meta{display:flex;flex-direction:column;min-width:0;flex:1 1}.ap-code{font-size:12px;color:#5a6477;font-weight:700}.ap-name{font-size:13px;color:#1c2230;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-tasks{font-size:11px;color:#9aa3b2;flex:0 0 auto}.ap-detail{flex:1 1;min-width:0}.ap-empty{padding:48px 16px;text-align:center}@media (max-width:720px){.adminproj{flex-direction:column}.ap-list{flex:1 1 auto;width:100%;position:static}.ap-scroll{max-height:42vh}}.pstatus{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:8px}.pstatus.sub{background:#fde2e2;color:#c62828}.pstatus.open{background:#e3f4e6;color:#1b7a32}.pstatus.pending{background:#fff3d6;color:#9a6b00}.pstatus.approved{background:#e3f4e6;color:#1b7a32}.pstatus.rejected{background:#fde2e2;color:#c62828}.pactive{display:block;font-size:11px;color:#7a8395;margin-top:4px}.rtools{gap:10px;padding:12px 12px 0;flex-wrap:wrap}.rtools,.rtools label{display:flex;align-items:center}.rtools label{gap:6px;font-size:13px;color:#5a6477}.rtools input{font:inherit;font-size:14px;padding:7px 9px;border:1px solid #c7cfdb;border-radius:8px}.rtools button{font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border:none;border-radius:8px;background:#0d3b66;color:#fff;cursor:pointer}.stable-wrap{padding:12px;overflow-x:auto}.stable{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.07);font-size:14px}.stable th{background:#eef1f5;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:#5a6477;padding:8px 10px;text-align:left}.stable td{padding:10px;border-top:1px solid #eef0f3}.stable .num{text-align:right;white-space:nowrap}.stable .srow{cursor:pointer}.stable .srow:active{background:#f0f3f8}.stable .scode{font-size:12px;color:#5a6477}.stable .scode,.stable .sname{font-weight:600}.stable .ssub{font-size:11px;color:#7a8395;margin-top:2px}.stable tfoot td{border-top:2px solid #dfe3ea;font-weight:700;background:#f7f9fb}.print{background:#e9ecf1;min-height:100vh;padding:16px 12px 40px}.printbar{max-width:820px;margin:0 auto 12px;display:flex;gap:8px}.printbar button{font:inherit;font-size:14px;font-weight:700;padding:9px 16px;border:none;border-radius:8px;background:#0d3b66;color:#fff;cursor:pointer}.printbar button.ghost{background:#fff;color:#0d3b66;border:1px solid #c7cfdb}.sheet{background:#fff;max-width:820px;margin:0 auto;padding:28px 32px;box-shadow:0 1px 8px rgba(0,0,0,.15);color:#1c2230}.sheet .ph{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid #0d3b66;padding:0 0 12px;background:none;color:#1c2230;position:static}.sheet .company{font-size:20px;font-weight:800;color:#0d3b66}.sheet .phr{text-align:right}.sheet .ptitle{font-size:18px;font-weight:800;letter-spacing:.5px;color:#0d3b66}.sheet .pmeta{font-size:12.5px;color:#333;margin-top:2px}.sheet .psum{margin:12px 0 14px;font-size:13px;background:#f4f6f9;border-radius:6px;padding:8px 10px}.ptable{width:100%;border-collapse:collapse;font-size:12px}.ptable td,.ptable th{border:1px solid #ccd3dd;padding:6px 8px;text-align:left;vertical-align:middle}.ptable th{background:#eef1f5;font-size:11px;text-transform:uppercase;letter-spacing:.3px}.ptable .c-no{width:28px;text-align:center}.ptable .c-mid{text-align:center;white-space:nowrap}.ptable .c-grp{color:#555;font-size:10px;max-width:170px;word-break:break-word}.ptable .pempty{text-align:center;color:#888;padding:16px}.ptable tbody.taskgroup{break-inside:avoid;page-break-inside:avoid}.ptable .photorow td{padding-top:4px;background:#fafbfc}.pthumbs{display:flex;flex-wrap:wrap;gap:5px}.pthumb img{width:72px;height:72px;object-fit:cover;border:1px solid #ccd3dd;border-radius:3px;display:block}.pphotos{margin-top:16px}.pphotos-l{font-size:13px;font-weight:700;color:#0d3b66;margin-bottom:6px}.pphotos-grid{display:flex;flex-wrap:wrap;gap:8px}.pphoto img{width:86px;height:86px;object-fit:cover;border:1px solid #ccd3dd;border-radius:4px;display:block}.pphoto .pcap{font-size:9px;color:#555;max-width:86px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfoot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:28px;padding-top:10px;border-top:1px solid #ccd3dd;font-size:12px}.pcomment{margin-top:18px;padding:10px 12px;border:1px solid #ccd3dd;border-radius:6px;page-break-inside:avoid;break-inside:avoid}.pcomment-l{font-size:12px;font-weight:700;color:#0d3b66;margin-bottom:4px}.pcomment-t{font-size:13px;white-space:pre-wrap}@media print{.print{background:#fff;padding:0}.no-print{display:none!important}.sheet{box-shadow:none;max-width:none;margin:0;padding:0}.pphoto img{width:74px;height:74px}.pthumb img{width:62px;height:62px}.ptable thead{display:table-header-group}@page{size:A4;margin:14mm}}.uctabs{display:flex;gap:8px;justify-content:center;padding:12px 12px 0;max-width:680px;margin:0 auto}.uctab{font:inherit;font-size:14px;font-weight:700;padding:8px 18px;border:1px solid #c5cedb;border-radius:9px 9px 0 0;background:#eef1f5;color:#5a6477;cursor:pointer}.uctab.active{background:#fff;color:#0d3b66;border-bottom-color:#fff}.ulist{padding:12px;max-width:680px;margin:0 auto}.ucard,.ulist{display:flex;flex-direction:column;gap:10px}.ucard{background:#fff;border-radius:11px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.ucard.inactive{opacity:.6}.ucard.add{border:1px dashed #c7cfdb}.ucard .utitle{font-size:15px;font-weight:700;color:#0d3b66}.ucard .ptasks{font-size:12px;font-weight:600;color:#7a8395}.ucard .urow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ucard .urow input,.ucard .urow select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid #c7cfdb;border-radius:8px}.ucard .urow input{flex:1 1 140px;min-width:120px}.ucard .actlabel{gap:5px;font-size:13px;color:#5a6477;white-space:nowrap}.ucard .actlabel,.uproj{display:flex;align-items:center}.uproj{flex-wrap:wrap;gap:8px}.uproj-l{font-size:12px;color:#5a6477;font-weight:600}.chiplabel{display:inline-flex;align-items:center;gap:4px;font-size:13px;background:#eef1f5;border:1px solid #c7cfdb;border-radius:8px;padding:4px 8px;cursor:pointer}.grantchips{display:flex;flex-wrap:wrap;gap:6px;width:100%}.grantchip{display:inline-flex;align-items:center;gap:6px;font-size:13px;background:#e2ecf7;border:1px solid #9db8d8;color:#0d3b66;border-radius:8px;padding:4px 8px}.grantchip button{border:none;background:none;color:#0d3b66;font-size:16px;line-height:1;cursor:pointer;padding:0}.headerlist{display:flex;flex-direction:column;gap:2px;width:100%;max-height:260px;overflow:auto;border:1px solid #e6e9ee;border-radius:8px;padding:6px}.headerlist .chiplabel{background:none;border:none;border-radius:0;padding:2px 4px;justify-content:flex-start}.ap-detailwrap{display:flex;flex-direction:column;gap:10px}.ap-tabs{display:flex;gap:6px;border-bottom:1px solid #e6e9ee}.ap-tab{background:none;padding:8px 14px;font-size:14px;color:#5a6b80;cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.ap-tab.sel{color:#0d3b66;font-weight:600;border-bottom-color:#0d3b66}.pa-access{display:flex;flex-direction:column;gap:14px}.pa-section{border:1px solid #e6e9ee;border-radius:10px;padding:10px 12px}.pa-sectitle{font-weight:600;color:#0d3b66;margin-bottom:8px;font-size:14px}.pa-subuser{border-top:1px dashed #e0e4ea;padding-top:8px;margin-top:8px}.pa-subuser:first-of-type{border-top:none;padding-top:0;margin-top:0}.pa-subhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.pa-remove{border:none;background:#f6e6e6;color:#9b2c2c;border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer}.pa-unsaved{color:#b26a00;font-size:12px;font-style:italic}.inbox{display:flex;flex-direction:column;gap:8px;padding:12px;max-width:760px;margin:0 auto}.inbox .empty{color:#5a6b80;padding:24px;text-align:center}.inbox-item{display:grid;grid-template-columns:1fr auto;grid-gap:2px 12px;gap:2px 12px;align-items:center;text-decoration:none;color:inherit;background:#fff;border:1px solid #e6e9ee;border-radius:10px;padding:10px 14px}.inbox-item:hover{border-color:#9db8d8;box-shadow:0 2px 10px rgba(13,59,102,.08)}.ib-proj{font-size:15px;color:#0d3b66}.ib-date{font-size:13px;color:#5a6b80;text-align:right}.ib-tag{grid-row:2;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;justify-self:start}.ib-tag.pm{background:#fff3d6;color:#9a6b00}.ib-tag.director{background:#e2ecf7;color:#0d3b66}.ib-by{grid-row:2;font-size:12px;color:#7a8699;text-align:right}.pa-count{background:#eef1f5;color:#5a6b80;border-radius:999px;padding:0 7px;font-size:12px;font-weight:600;margin-left:4px}.pa-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.pa-chip{display:inline-flex;align-items:center;gap:6px;background:#e2ecf7;border:1px solid #9db8d8;color:#0d3b66;border-radius:999px;padding:3px 10px;font-size:13px}.pa-chip button{border:none;background:none;color:#0d3b66;font-size:15px;line-height:1;cursor:pointer;padding:0}.pa-add{position:relative;margin-top:6px;max-width:280px}.pa-search{width:100%;font:inherit;font-size:13px;padding:6px 9px}.pa-menu,.pa-search{border:1px solid #c7cfdb;border-radius:8px}.pa-menu{position:absolute;left:0;right:0;top:100%;margin-top:2px;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:20;max-height:220px;overflow:auto}.pa-menuitem{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 10px;font:inherit;font-size:13px;cursor:pointer}.pa-menuitem:hover{background:#eef4fb}.pa-empty{padding:7px 10px;color:#7a8699;font-size:13px}.pa-subbtns{display:flex;gap:6px;align-items:center;flex:none}.pa-edit{border:none;background:#eef1f5;color:#0d3b66;border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer}.asmodal-backdrop{position:fixed;inset:0;background:rgba(13,28,46,.45);display:flex;align-items:flex-start;justify-content:center;padding:32px 12px;z-index:50}.asmodal{background:#fff;border-radius:12px;width:min(560px,100%);max-height:85vh;overflow:auto;padding:16px;box-shadow:0 12px 40px rgba(0,0,0,.3);position:relative}.asmodal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:#0d3b66;font-size:16px}.asclose{border:none;background:#eef1f5;border-radius:8px;width:30px;height:30px;font-size:15px;cursor:pointer}.aslist{display:flex;flex-direction:column;gap:8px}.ascard{border:1px solid #e6e9ee;border-radius:8px;padding:6px 8px}.asrow{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;font:inherit;padding:4px;text-align:left}.asname{font-weight:700;color:#0d3b66;flex:1 1}.asunsaved{color:#9a6b00}.abadge,.asunsaved{font-size:11px;font-weight:700}.abadge{display:inline-flex;align-items:center;gap:3px;margin-left:6px;color:#1b7a32;background:#e3f4e6;border:1px solid #b6dcc0;border-radius:8px;padding:1px 7px;vertical-align:middle;white-space:nowrap}.assaved{position:-webkit-sticky;position:sticky;bottom:0;text-align:center;color:#1b7a32;font-size:13px;padding-top:8px}.uactions{display:flex;gap:8px}.usave{padding:8px 16px;font-size:14px;font-weight:700;border:none;border-radius:8px;background:#1b7a32;color:#fff;cursor:pointer}.usave:disabled{opacity:.5;cursor:default}.ucard .urow .pwfield{flex:1 1 140px;min-width:120px;display:flex;align-items:center;gap:4px}.ucard .urow .pwfield input{flex:1 1 auto;min-width:0}.pwtoggle{border:1px solid #c7cfdb;background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer;font-size:15px;line-height:1}.udel{padding:8px 16px;font-size:14px;font-weight:700;border:none;border-radius:8px;background:#c62828;color:#fff;cursor:pointer}.udel:disabled{background:#d8a3a3;cursor:default}.taskupload{font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border:1px solid #c7cfdb;border-radius:8px;background:#eef1f5;color:#0d3b66;cursor:pointer}.taskupload.busy{opacity:.6;cursor:default}.taskdl{font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border:1px solid #c7cfdb;border-radius:8px;background:#eef1f5;color:#0d3b66;cursor:pointer;text-decoration:none;display:inline-block}.taskdl:hover{background:#e3e8ef}.saved{position:fixed;bottom:64px;left:0;right:0;font-size:12px;color:#1b7a32;text-align:center;padding:4px;pointer-events:none}@keyframes pill-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.login{min-height:100dvh;display:flex;align-items:stretch}.loginintro{display:none}.loginside{flex:1 1;display:flex;align-items:center;justify-content:center;padding:20px}@media (min-width:641px){.loginintro{display:flex;flex:1.2 1;align-items:center;padding:56px;background:linear-gradient(135deg,#0d3b66,#1b5e96);color:#fff}.loginintro h2{margin:0 0 12px;font-size:32px}.loginintro p{margin:0;font-size:16px;line-height:1.55;opacity:.85;max-width:440px}}.logincard{width:100%;max-width:340px;background:#fff;border-radius:14px;padding:24px 20px;box-shadow:0 4px 20px rgba(0,0,0,.1);display:flex;flex-direction:column;gap:14px}.logincard h1{margin:0 0 4px;font-size:20px;color:#0d3b66;text-align:center}.logincard label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#5a6477}.logincard input{font:inherit;font-size:16px;padding:10px 12px;border:1px solid #c7cfdb;border-radius:9px}.logincard input:focus{outline:none;border-color:#0d3b66}.logincard button{margin-top:4px;padding:12px;font-size:15px;font-weight:700;border:none;border-radius:10px;background:#0d3b66;color:#fff;cursor:pointer}.logincard button:disabled{opacity:.6;cursor:default}.loginerr{background:#fde2e2;color:#c62828;font-size:13px;padding:8px 10px;border-radius:8px;text-align:center}@media (max-width:640px){header .userbar{position:relative}header .userbar .hamb,header .userbar .menubadge{display:inline-block}header .userbar .ubactions{display:none;position:absolute;top:calc(100% + 8px);right:0;z-index:30;flex-direction:column;align-items:stretch;gap:6px;min-width:184px;padding:8px;background:#0d3b66;border:1px solid rgba(255,255,255,.4);border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.4)}header .userbar .ubactions.open{display:flex}header .userbar .ubactions .ublink,header .userbar .ubactions button{width:100%;text-align:center;padding:9px 10px}header .userbar .noteicon{display:inline-block}header .proj{padding-right:30px}header .proj select{width:100%;max-width:100%}.actions{padding-right:30px}.cmt textarea{display:none}.cmticon{display:inline-block}.rbnoteinput{display:none}.rbnoteicon{display:inline-block}.rbactions .rblbl{display:none}.rbactions .approve,.rbactions .reject{font-size:17px}.upov{position:fixed;inset:0;z-index:65;background:rgba(13,23,38,.35)}.upbox,.upov{display:flex;align-items:center;justify-content:center}.upbox{position:relative;width:160px;height:160px;border-radius:50%;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35)}.upbox .spin{position:absolute;inset:6px;border:7px solid rgba(140,198,250,.3);border-top-color:#8cc6fa;border-radius:50%;animation:spin .9s linear infinite}.upbox .uptxt{max-width:108px;text-align:center;font-size:13px;font-weight:700;color:#0d3b66;line-height:1.35}.daycomment{display:none}.saved{background:#1c2230;font-size:14px;font-weight:600;padding:10px 18px;box-shadow:0 6px 20px rgba(0,0,0,.35);animation:pill-in .2s ease}.saved,.unsaved{bottom:78px;left:50%;right:auto;transform:translateX(-50%);z-index:70;max-width:90vw;color:#fff;border-radius:999px}.unsaved{background:#9a6b00;font-size:13px;padding:8px 16px;box-shadow:0 6px 20px rgba(0,0,0,.3)}thead{display:none}table.grid,tbody,td,tr{display:block;width:100%}tr{border-bottom:8px solid #f4f5f7}td{border-top:none;padding:6px 12px}.task{padding-top:12px}td.cmt,td.emp,td.file,td.prog,td.work{display:inline-block;width:auto;vertical-align:middle}td.emp:before{content:"Radnika: ";font-size:12px;color:#5a6477}td.prog:before{content:"Završeno: ";font-size:12px;color:#5a6477}.notepop.cthreadpop{transform:none;max-height:82vh;overflow:auto}.cthreadpop .clist{max-height:none}.infopop .infotbl,.infopop .notepop-h{font-size:12px}.infopop .infotbl td{padding:5px 3px}.infopop .infotbl td:first-child,.infopop .thedits-h,.infopop .thist-h{font-size:11px}.infopop .theditrow,.infopop .thisttbl,.infopop .thisttbl td{font-size:10px}.infopop .thisttbl .thby,.infopop .thisttbl th{font-size:9px}}.reportsrow{display:flex;gap:18px;align-items:flex-start;max-width:1200px;margin:0 auto}.reportsrow .calwrap{flex:1 1 560px;max-width:640px;margin:14px 0 24px}.pcpanel{flex:1 1 340px;min-width:0;margin:14px 12px 24px 0;display:flex;flex-direction:column;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);max-height:80vh}.pchead{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eef0f3}.pctitle{font-weight:800;color:#0d3b66;font-size:14px}.pctabs button{font:inherit;font-size:12px;font-weight:600;padding:4px 10px;margin-left:6px;border:1px solid #c7cfdb;border-radius:7px;background:#fff;color:#5a6477;cursor:pointer}.pctabs button.on{background:#0d3b66;color:#fff;border-color:#0d3b66}.pcnew{padding:10px 12px;border-bottom:1px solid #eef0f3;display:flex;flex-direction:column;gap:6px}.pcnew textarea{font:inherit;font-size:13px;padding:7px 9px;border:1px solid #c7cfdb;border-radius:8px;resize:vertical}.pcnew-row{justify-content:space-between}.pcimp,.pcnew-row{display:flex;align-items:center}.pcimp{font-size:12px;font-weight:700;color:#c0392b;gap:5px;cursor:pointer}.pcnew-row>button{font:inherit;font-size:13px;font-weight:600;padding:6px 14px;border:none;border-radius:8px;background:#0d3b66;color:#fff;cursor:pointer}.pcnew-row>button:disabled{opacity:.5;cursor:default}.pclist{overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.pchint{color:#9aa3b2;font-size:13px;text-align:center;padding:12px}.pcerr{color:#c62828;font-size:13px;font-weight:600;padding:8px 12px}.pcthread{border:1px solid #e6e9ef;border-radius:10px;padding:8px 10px}.pcthread.imp{border-color:#f0b4ab;background:#fff7f5}.pcreply.arch,.pcthread.arch{opacity:.55}.pcmeta{font-size:12px;color:#5a6477;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.pcmeta b{color:#1c2230}.pcbang{color:#c0392b}.pclock{color:#9aa3b2}.pcbody{font-size:13px;color:#1c2230;margin:4px 0 2px;white-space:pre-wrap;word-break:break-word}.pcdone{margin-left:auto;font:inherit;font-size:11px;font-weight:700;padding:2px 9px;border:1px solid #1b7a32;color:#1b7a32;background:#fff;border-radius:7px;cursor:pointer}.pcreply{margin:6px 0 0 14px;padding:5px 8px;border-left:2px solid #dbe1ea;background:#f7f9fc;border-radius:0 8px 8px 0}.pcreplybtn{margin-top:6px;font:inherit;font-size:12px;font-weight:600;color:#0d3b66;background:none;border:none;cursor:pointer;padding:0}.pcreplybox{flex-direction:column;margin-top:6px}.pcreplybox,.pcreplyrow{display:flex;gap:6px}.pcreplybox input{flex:1 1;min-width:0;font:inherit;font-size:13px;padding:5px 8px;border:1px solid #c7cfdb;border-radius:7px}.pcreplybox button{font:inherit;font-size:12px;font-weight:600;padding:5px 10px;border:none;border-radius:7px;background:#0d3b66;color:#fff;cursor:pointer}.pcreplybox .pccancel{background:#eef1f5;color:#5a6477}.pcphotobtn{display:inline-flex;align-items:center;font-size:16px;line-height:1;padding:4px 8px;border:1px solid #c7cfdb;border-radius:8px;background:#fff;cursor:pointer}.pcphotobtn:hover{border-color:#0d3b66}.pcpend{display:flex;flex-wrap:wrap;gap:6px}.pcpendthumb{position:relative;width:56px;height:56px}.pcpendthumb img{width:56px;height:56px;object-fit:cover;border-radius:6px;border:1px solid #ccd3dd;display:block}.pcpendx{position:absolute;top:-6px;right:-6px;width:18px;height:18px;line-height:16px;text-align:center;font-size:11px;border:none;border-radius:50%;background:#c62828;color:#fff;cursor:pointer;padding:0}.pcphotos{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}.pcphoto{position:relative}.pcphoto img{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid #ccd3dd;display:block;cursor:pointer}.pcphotox{position:absolute;top:-6px;right:-6px;width:20px;height:20px;line-height:18px;text-align:center;font-size:11px;border:1px solid #e0b4b4;border-radius:50%;background:#fff;color:#c62828;cursor:pointer;padding:0}.pclightbox{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;padding:20px}.pclightbox img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5)}.pclightx{position:fixed;top:16px;right:20px;width:40px;height:40px;font-size:20px;border:none;border-radius:50%;background:rgba(255,255,255,.9);color:#1c2230;cursor:pointer}@media (max-width:900px){.reportsrow{flex-direction:column}.reportsrow .calwrap{flex:none;width:100%;max-width:560px;margin-left:auto;margin-right:auto}.pcpanel{width:100%;max-width:560px;margin:0 auto 24px}}.calwrap{max-width:560px;margin:14px auto 24px;padding:0 12px}.calnav{display:flex;align-items:center;gap:8px;margin-bottom:8px}.calnav button{font:inherit;font-size:20px;line-height:1;width:38px;height:38px;border:1px solid #c7cfdb;border-radius:9px;background:#fff;color:#0d3b66;cursor:pointer}.calnav button:disabled{opacity:.3;cursor:default}.calttl{flex:1 1;text-align:center;font-size:16px;font-weight:700;color:#0d3b66}.calsum{display:block;font-size:12px;font-weight:600;color:#5a6477}.calsum span{margin:0 4px}.calsum .cok{color:#1b7a32}.calsum .cpend{color:#0d3b66}.calsum .cmiss{color:#c62828}.calgrid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;background:#fff;border-radius:12px;padding:10px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.calwd{text-align:center;font-size:11px;font-weight:700;color:#5a6477;padding:2px 0 6px}.calcell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;aspect-ratio:1;min-height:42px;border:1px solid transparent;border-radius:9px;background:#f4f5f7;font:inherit;cursor:pointer;padding:0}.calcell:disabled{background:transparent;cursor:default}.calcell .cday{position:absolute;top:3px;left:5px;font-size:13px;font-weight:600;color:#1c2230}.calcell:disabled .cday{color:#c7cfdb}.calcell .cwx{position:absolute;top:2px;right:4px;font-size:12px;line-height:1}.calcell .cmark{font-size:16px;line-height:1}.calcell.ok{background:#e3f4e6}.calcell.ok .cmark{color:#1b7a32;font-weight:700}.calcell.pend{background:#e2ecf7}.calcell.rej{background:#fde2e2}.calcell.miss{background:#fff3d6}.calcell.miss .cmark{color:#c62828}.calcell.new{background:#fff;border-color:#c7cfdb}.calcell.fut{background:#fff;border:1px dashed #dfe3ea}.calcell.fut .cday{color:#7a8395}.calcell.nw .cday{color:#9aa3b2}.calcell.nw .cmark{color:#9aa3b2;font-weight:700}.calcell.today{box-shadow:inset 0 0 0 2px #0d3b66}.calcell.selcell{border-color:#0d3b66;box-shadow:0 0 0 2px rgba(13,59,102,.35)}.callegend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 2px 0;font-size:12px;color:#5a6477}.callegend .lg{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-1px}.callegend .lg.ok{background:#e3f4e6}.callegend .lg.pend{background:#e2ecf7}.callegend .lg.miss{background:#fff3d6}.callegend .lg.rej{background:#fde2e2}.callegend .lg.nw{background:#f4f5f7;border:1px solid #dfe3ea}.caldetail{margin-top:12px;background:#fff;border-radius:12px;padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.caldetail .cdttl{font-size:15px;font-weight:700;color:#0d3b66;margin-bottom:6px}.caldetail .cdinfo{font-size:13px;color:#33404f}.caldetail .cdwarn{color:#c62828;font-weight:700}.caldetail .cdsub{color:#5a6477}.mapbtn{font:inherit;font-size:13px;font-weight:600;padding:8px 12px;border:1px solid #c7cfdb;border-radius:8px;background:#fff;cursor:pointer;white-space:nowrap}.mapbtn:hover{border-color:#0d3b66;color:#0d3b66}.modalbox.mapbox{max-width:720px}.mappick{height:60vh;min-height:320px}.mapfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid #dfe3ea}.mapfoot .mapcoords{font-size:13px;font-weight:600;color:#33404f}.mapfoot .usave:disabled{opacity:.5;cursor:default}.caldetail .cdwx{font-size:13px;color:#33404f;margin-bottom:6px}.caldetail .cdwxsrc{color:#9aa3b2;font-size:11px}.caldetail .cdactions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.caldetail .cdopen{display:inline-block;padding:9px 16px;background:#0d3b66;color:#fff;border-radius:9px;font-size:14px;font-weight:700;text-decoration:none}@media (min-width:641px){.wrap{padding:0 30px 90px}.cards{padding:12px 30px}.lockbar{margin-left:30px;margin-right:30px}.calwrap{max-width:960px}.calgrid{gap:6px;padding:14px}.calcell{min-height:85px;aspect-ratio:auto;border-radius:10px}.calcell .cday{font-size:16px}.calcell .cwx{font-size:15px}.calcell .cmark{font-size:26px}.calwd{font-size:13px}.calttl{font-size:20px}.callegend,.calsum{font-size:13px}}