:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:#342c28;background:#f8f6f2;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:11px 18px;transition:background .15s}button:disabled{opacity:.5;cursor:wait}input,textarea,select{border:1px solid #e4dfd8;background:#fff;border-radius:8px;padding:11px 12px;width:100%;color:inherit}input:focus,textarea:focus,select:focus{outline:2px solid #dfab89;outline-offset:1px}label{display:grid;gap:9px;font-size:13px;font-weight:500}.primary{background:#ca7045;color:#fff}.primary:hover{background:#b76036}.secondary{background:#eee8df;color:#775d4b}.muted{color:#95877b;line-height:1.8}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#b18f75;margin:0 0 14px}h1{font-size:30px;font-weight:600;margin:0}h2{font-size:24px;margin:0}p{line-height:1.6}.login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-content{width:380px;max-width:100%}.login h1{text-align:center;font-size:28px;letter-spacing:1px}.login-subtitle{text-align:center;color:#95877b;font-size:14px;margin:10px 0 0}.login form{display:grid;gap:20px;margin-top:32px}.login input{min-height:46px}.login form>.primary{min-height:46px;margin-top:4px}.login .error{margin:0}.footnote{font-size:12px;color:#a49789;margin-top:30px}.error{color:#b84e37;font-size:13px;white-space:pre-line}.error:empty{display:none}aside{position:fixed;inset:0 auto 0 0;width:240px;background:#f0e9df;border-right:1px solid #e8e0d5;padding:36px 24px}.brand{font-size:23px;font-weight:600}.aside-caption{font-size:11px;color:#a08b78;letter-spacing:1px;margin-top:12px}nav{margin-top:56px;display:grid;gap:12px}.nav{text-align:left;background:transparent;color:#968574;padding:15px 18px}.nav.active{color:#b5643d;background:#fff8ef}.aside-bottom{position:absolute;bottom:28px;color:#94816e;font-size:12px}.aside-bottom button{display:block;background:none;color:#9a8776;padding:14px 0}.dot{display:inline-block;width:6px;height:6px;background:#86a073;border-radius:50%;margin-right:6px}main{margin-left:240px;padding:45px 48px;max-width:1600px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}header .muted{margin-bottom:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:34px}.metrics>div{background:white;border:1px solid #eee8df;border-radius:12px;padding:23px}.metrics span{display:block;color:#a08c7b;font-size:12px}.metrics strong{display:block;margin-top:12px;font-size:30px;font-weight:500}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}.toolbar input{max-width:230px}.toolbar select{max-width:340px}.tabs{display:flex;gap:5px}.tabs button{background:transparent;color:#9b8979;padding:9px 17px}.tabs .selected{background:#e8dfd2;color:#705644}.panel{background:#fff;border:1px solid #ebe4db;border-radius:12px;overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:12px;font-weight:500;color:#9d8977;background:#fcfaf6;padding:18px}td{padding:22px 18px;border-top:1px solid #f2ece4;font-size:13px}td:first-child{font-weight:500}td .sub{font-size:11px;color:#a49280;margin-top:7px}td button{font-size:12px;padding:7px 9px;background:transparent;color:#bb704b}td button:hover{background:#fbf0e5}.badge{display:inline-block;padding:5px 10px;border-radius:20px;font-size:11px;background:#f4efe8;color:#9c8771}.badge.published{background:#edf4e8;color:#6e8a59}.badge.offline{background:#eeeef1;color:#92929d}.empty{text-align:center;padding:55px 20px;color:#a49383}dialog{border:1px solid #e9dfd2;border-radius:18px;padding:30px;width:720px;max-width:calc(100% - 32px);max-height:90vh;color:inherit}dialog::backdrop{background:rgba(38,30,23,.35);backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.close{background:#f5f0e9;font-size:25px;padding:3px 13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.wide{grid-column:1/-1}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}#message:not(:empty){position:fixed;bottom:25px;right:35px;background:#43362b;color:white;padding:14px 22px;border-radius:9px;box-shadow:0 3px 20px #0002} [hidden]{display:none!important}@media(max-width:900px){aside{width:185px;padding:28px 16px}.brand{font-size:19px}main{margin-left:185px;padding:30px 22px}.metrics{gap:8px}.metrics>div{padding:15px}.toolbar{flex-wrap:wrap}}@media(max-width:600px){aside{position:static;width:auto;padding:18px}.aside-caption,.aside-bottom{display:none}nav{display:flex;margin-top:18px;gap:8px}.nav{flex:1}main{margin:0;padding:24px 16px}h1{font-size:25px}.metrics{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.tabs button{padding:9px 12px}.toolbar input{max-width:100%}}
.toolbar select{max-width:230px}.toolbar{flex-wrap:wrap}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px;background:#faf6f0;border-radius:10px;margin-bottom:20px}.review-grid p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.review-grid .wide{grid-column:1/-1}.review-grid small{display:block;color:#a28d79;margin-bottom:6px}.review-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.review-actions button{background:#f2e8db;color:#9c633b}.review-actions .approve{background:#6e8758;color:#fff}.proof-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.warning{background:#fff0df;color:#aa612f;padding:12px;border-radius:8px;margin:12px 0}.check-line{display:flex;align-items:center;margin:18px 0}.check-line input{width:auto}.assignment-list{display:grid;gap:12px;max-height:220px;overflow:auto;background:#faf6f0;padding:16px;border-radius:10px}.assignment-list label{display:flex;align-items:center;gap:8px}.assignment-list input{width:auto}#review-form{display:grid;gap:16px}#image-viewer img{display:block;width:100%;max-height:500px;object-fit:contain;background:#faf7f1;margin:20px 0}.history-item{padding:15px 0;border-top:1px solid #eee;white-space:pre-wrap;font-size:12px;color:#8f7d6b}.danger{color:#b84e37}.badge.pending,.badge.needs_info{background:#fff0dd;color:#b87937}.badge.approved{background:#edf4e8;color:#6e8a59}small{font-weight:400;color:#a28d79}.account-controls{display:flex;gap:10px}

.back-link{background:none;color:#ad754d;padding:0 0 22px;font-size:13px}.activity-overview{display:grid;grid-template-columns:1.2fr 1.4fr 1fr 1fr;gap:20px;padding:24px;margin-bottom:22px}.activity-overview small{display:block;margin-bottom:10px}.activity-overview strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.activity-counts span{display:block;line-height:1.9;font-size:12px;color:#9a8876}.activity-counts .pending-count{color:#c17a44}td button.manage-entry{background:#fbefe0;color:#b16d3f;margin-right:7px}header h1{overflow-wrap:anywhere}#registration-view .toolbar input{max-width:280px}@media(max-width:900px){.activity-overview{grid-template-columns:1fr 1fr;gap:20px}}

.calligraphy-logo{position:relative;overflow:hidden;aspect-ratio:710/450;mix-blend-mode:multiply}.calligraphy-logo img{position:absolute;display:block;width:140.845%;max-width:none;height:auto;left:-20.423%;top:-48.889%}.login h1.calligraphy-logo{width:220px;margin:0 auto 18px}.brand.calligraphy-logo{width:170px;max-width:100%}@media(max-width:900px){.brand.calligraphy-logo{width:145px}}@media(max-width:600px){.brand.calligraphy-logo{width:125px}}

.nav{display:flex;align-items:center;gap:12px;min-height:50px;border-radius:12px;padding:10px 14px;font-weight:500}.nav-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;flex-shrink:0;background:#e8dfd466;color:#9e8b79;transition:background .15s,color .15s}.nav-icon svg{width:21px;height:21px;display:block}.nav:hover{background:#f8f2e9;color:#996745}.nav.active .nav-icon{background:#f3ddcb;color:#bf693f}.nav.active{color:#b5643d;background:#fff8ef}.nav:focus-visible{outline:2px solid #ca7045;outline-offset:3px}@media(max-width:900px){.nav{gap:9px;padding:10px}.nav-icon{width:30px;height:30px}}@media(max-width:600px){nav{flex-wrap:wrap}.nav{flex:1 1 140px}}
