:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#232738;background:#f6f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#5863be;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:258px;background:#172033;color:#f7f8fd;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:29px 17px}.brand{display:flex;gap:12px;align-items:center;padding:5px 12px 39px}.brand-icon{display:grid;place-items:center;background:#7084ed;border-radius:12px;font-size:28px;width:44px;height:44px}.brand strong{display:block;font-size:16px;letter-spacing:-.3px}.brand small{display:block;color:#9ba6b9;font-size:11px;margin-top:4px}nav{display:grid;gap:5px}nav button{border:0;color:#aab6ca;background:transparent;border-radius:10px;text-align:left;padding:13px 14px;font-size:15px;display:flex;gap:13px;align-items:center}nav button.active,nav button:hover{background:#2b3751;color:white}.aside-bottom{margin-top:auto;font-size:12px;color:#b9c3d4;border-top:1px solid #354055;padding:20px 10px}.aside-bottom small{display:block;color:#8391a7;margin-top:7px}.dot{display:inline-block;background:#77c6aa;width:8px;height:8px;border-radius:50%;margin-right:5px}.main{width:calc(100% - 258px);padding:36px min(4vw,65px) 70px;max-width:1700px}.top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:1.9px;color:#7882a0;font-weight:700}.top h1{font-size:31px;margin:8px 0 5px;letter-spacing:-1.3px}.top p{color:#83899b;margin:0;font-size:14px}.head-actions,.actions,.toolbar,.between{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.btn{border-radius:9px;padding:10px 15px;border:1px solid #dfe3ed;background:#fff;color:#30394c;font-size:13px;font-weight:650;white-space:nowrap}.btn:hover{filter:brightness(.96)}.btn.primary{background:#6372d8;border-color:#6372d8;color:white}.btn.ghost{background:white}.btn.danger{color:#b74854;border-color:#f0cbd1}.btn.small{font-size:12px;padding:7px 11px}.btn:disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat,.panel{background:white;border:1px solid #e8eaf2;border-radius:14px;box-shadow:0 4px 22px #24315c08}.stat{padding:22px}.stat span{font-size:12px;color:#929aab;display:block;margin-bottom:11px}.stat strong{display:block;font-size:30px;letter-spacing:-1.2px}.stat em{font-size:12px;color:#8a91a3;font-style:normal}.panel{padding:22px;margin-bottom:17px}.panel h2{font-size:17px;margin:0 0 6px;letter-spacing:-.4px}.muted{color:#8b93a5}.smalltext{font-size:12px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.section-top h2{margin:0}.toolbar{margin-bottom:18px;flex-wrap:wrap}.field,select,input,textarea{border:1px solid #dfe3ec;border-radius:9px;padding:10px 12px;background:white;color:#30394b;min-width:0}input[type=search]{min-width:245px}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#929aac;font-weight:650;border-bottom:1px solid #e9ebf0;padding:12px 10px}td{border-bottom:1px solid #eff0f5;padding:14px 10px;font-size:13px}tr:last-child td{border-bottom:none}tbody tr:hover{background:#fbfbff}td strong{font-weight:650}.clickable{cursor:pointer}.pill{background:#f1f3f9;padding:6px 10px;border-radius:50px;font-size:11px;color:#566079;display:inline-block}.pill.green{color:#087c69;background:#e3f7f0}.pill.violet{color:#6660b7;background:#efedff}.pill.gold{color:#a46c1a;background:#fff4df}.pill.gray{color:#667085;background:#f1f3f6}.empty{text-align:center;padding:45px 20px;color:#818a9c}.empty strong{display:block;color:#485268;margin-bottom:9px}.linkish{border:0;background:none;color:#6171d0;padding:0;font-weight:650}.details-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.details-head h2{font-size:24px;margin:0 0 6px}.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.mini{padding:15px;background:#f8f9fc;border:1px solid #ecedf5;border-radius:9px}.mini small{display:block;color:#949bad;margin-bottom:7px}.mini strong{font-size:14px}.tabbar{display:flex;gap:8px;border-bottom:1px solid #e9eaf1;margin:25px 0 17px}.tabbar button{border:0;background:transparent;padding:11px 13px;color:#929aac}.tabbar button.active{border-bottom:2px solid #6575d9;color:#5362bf;font-weight:700}.timeline{display:flex;align-items:stretch;gap:2px;overflow:hidden;min-height:38px;border-radius:8px}.seg{display:flex;align-items:center;justify-content:center;color:white;font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px}.seg.poster{background:#7582d8}.seg.factory{background:#369f94}.seg.cross{background:#d39b56}.seg.none{background:#e9ecf3;color:#929aac}.legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#778095}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}.event{display:flex;gap:13px;position:relative;padding:10px 0}.event:before{content:'';position:absolute;left:6px;top:25px;bottom:-13px;width:2px;background:#e5e8f0}.event:last-child:before{display:none}.event .node{position:relative;flex:0 0 14px;width:14px;height:14px;border:3px solid #7b85dd;background:white;border-radius:50%;margin-top:3px}.event .eventtext{flex:1}.event strong{display:block;font-size:13px}.event p{font-size:12px;color:#858da0;margin:4px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:15px}.form-group{display:grid;gap:7px;margin-bottom:15px}.form-group label{font-weight:650;font-size:12px;color:#5d667d}.form-group input,.form-group select,.form-group textarea{width:100%}.hint{font-size:12px;color:#8790a5;line-height:1.55}.modal-backdrop{position:fixed;inset:0;background:#0e14248a;display:grid;place-items:center;padding:15px;z-index:10}.modal{background:white;border-radius:17px;width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 30px 110px #0f153749}.modal-header,.modal-footer{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ecedf2}.modal-header h2{font-size:19px;margin:0}.modal-footer{border-bottom:none;border-top:1px solid #ecedf2;justify-content:flex-end}.modal-body{padding:23px 24px;overflow:auto}.close{border:0;background:transparent;font-size:26px;color:#98a0b1}.hidden{display:none!important}.toast{position:fixed;right:25px;bottom:25px;background:#182237;color:#fff;border-radius:10px;padding:14px 19px;z-index:30;box-shadow:0 10px 32px #0b10283d;font-size:13px}.notice{padding:14px;border-radius:10px;background:#f1f4ff;color:#5e6785;font-size:12px;line-height:1.6}.warning{background:#fff8ed;color:#946c2f}.monthnav{display:flex;align-items:center;gap:9px;margin-bottom:18px}.right{text-align:right}.align-start{align-items:flex-start}.boardrow{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:13px;margin-bottom:17px}.boardrow strong{font-size:12px}.wrap{overflow-x:auto}.no-margin{margin:0}.checks{display:grid;gap:9px;max-height:210px;overflow:auto}.checks label{display:flex;gap:8px;font-size:13px;align-items:center}.checks input{width:auto}.badge-count{background:#e8ebfc;color:#5b69c5;padding:3px 8px;border-radius:99px;font-size:11px}.subtle{border-top:1px solid #eef0f5;margin:20px 0}.help{line-height:1.65;color:#6c7588;font-size:13px}.thin{text-transform:none;letter-spacing:0}.right-align{margin-left:auto}@media(max-width:1080px){.grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:210px}.main{width:calc(100% - 210px);padding:25px}.top{flex-wrap:wrap}.split{grid-template-columns:1fr}}@media(max-width:700px){.shell{display:block}.sidebar{position:relative;width:100%;height:auto;padding:14px}.brand{padding:5px 6px 12px}nav{display:flex;gap:2px;overflow-x:auto}nav button{padding:10px;font-size:18px}nav button span{display:none}.aside-bottom{display:none}.main{width:100%;padding:22px 14px}.top h1{font-size:25px}.head-actions{width:100%;flex-wrap:wrap}.grid{gap:9px}.stat{padding:13px}.stat strong{font-size:23px}.panel{padding:14px}.mini-grid{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.boardrow{grid-template-columns:1fr;gap:5px}table{min-width:570px}.wrap{overflow-x:auto}input[type=search]{min-width:150px;flex:1}}

/* Extended community editor */
.modal:has(#fTier){width:min(780px,100%)}.modal:has(#fTier) .modal-body{padding-top:8px}.form-section{border-bottom:1px solid #edf0f5;padding:18px 0 6px}.form-section:last-child{border-bottom:none}.form-section h3{font-size:14px;margin:0 0 16px;color:#293247}.check-tile{display:flex;align-items:center;gap:9px;padding:13px;background:#f7f8fc;border:1px solid #e4e8f0;border-radius:10px;font-size:13px;cursor:pointer}.check-tile input{width:auto;accent-color:#6372d8}.form-section textarea{width:100%}.mini-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:850px){.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.5: comments in the register and expandable poster assignments */
.community-table{min-width:950px}.community-table .community-note{min-width:165px;max-width:300px;white-space:normal;overflow-wrap:anywhere;line-height:1.5}.note-label{color:#444e65;font-weight:550}.poster-expanded>td{background:#f8f9fd;padding:8px 14px 18px}.poster-details{padding:17px;background:#fff;border:1px solid #e4e8f2;border-radius:12px}.poster-details h3{font-size:16px;margin:0 0 5px}.poster-details .between{gap:16px;align-items:start;margin-bottom:12px}.poster-assignments{min-width:780px}.poster-assignments td{vertical-align:top}.poster-note{margin-top:6px;font-size:12px;color:#687287;max-width:260px;overflow-wrap:anywhere}.period-current{color:#13816e;margin-top:5px;font-weight:650}.poster-community-link{text-align:left}.poster-expanded:hover{background:transparent}

/* Cloud access */
.hidden{display:none!important}
.auth-gate{min-height:100vh;display:grid;place-items:center;background:#f5f7fb;padding:24px;color:#172033}
.auth-panel{max-width:430px;width:100%;padding:40px;border:1px solid #e0e7ef;border-radius:22px;background:#fff;box-shadow:0 20px 60px #1c36531a}
.auth-mark{font-size:38px;color:#5369a2}.auth-panel h1{margin:8px 0}.auth-panel p{color:#657084;line-height:1.6}.auth-panel form{display:grid;gap:12px;margin:24px 0}.auth-panel input{height:46px;padding:10px 14px;border:1px solid #cdd4df;border-radius:10px}.auth-panel .btn{width:100%;justify-content:center}
.viewer #addTop,.viewer #saveModal,.viewer [data-action="addCommunity"],.viewer [data-action="addPoster"],.viewer [data-action="addAssignment"],.viewer [data-action="addChannel"],.viewer [data-action="bulkRate"],.viewer [data-action="import"],.viewer [data-action="changeTier"],.viewer [data-action="correctTier"],.viewer [data-action="editCommunity"],.viewer [data-action="detailAssignment"],.viewer [data-action="detailChannel"],.viewer [data-action="detailRate"]{display:none!important}

/* Password login */
.auth-alt{display:block;background:transparent;border:0;color:#5369b0;text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;text-align:center;width:100%;padding:8px}
.auth-alt:hover{color:#354582}
.sidebar #changePassword{white-space:normal;text-align:center;width:100%}

/* v0.9 password visibility controls */
.password-field{position:relative;width:100%}
.password-field input{display:block;width:100%;padding-right:52px!important}
.password-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);height:35px;width:39px;border:0;border-radius:8px;background:transparent;color:#59657d;cursor:pointer;font-size:19px;line-height:1}
.password-eye:hover,.password-eye:focus-visible{background:#eef1f8;outline-offset:2px}
.password-dialog{width:min(480px,100%)}
.password-dialog .modal-body{padding-bottom:8px}
.password-dialog .form-group input{padding:12px 52px 12px 12px;border:1px solid #cdd4df;border-radius:9px}
.password-error{color:#b32a35;font-size:13px;min-height:20px;margin:8px 0 0}
