*{box-sizing:border-box}body{margin:0;background:var(--ktp-bg);color:var(--ktp-text);font:var(--ktp-body-size)/1.55 var(--ktp-font)}a{color:var(--ktp-primary-dark);text-underline-offset:3px}a:hover{color:var(--ktp-primary-hover)}button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}h1,h2,h3,p{margin-top:0}h1{font-size:var(--ktp-h1-size);line-height:1.22;letter-spacing:-.025em;margin-bottom:12px;overflow-wrap:anywhere}h2{font-size:var(--ktp-h2-size);line-height:1.3;margin-bottom:8px}h3{font-size:var(--ktp-card-title-size);line-height:1.35}p{color:var(--ktp-text-muted);margin-bottom:20px}small,.hint{font-size:var(--ktp-small-size);color:var(--ktp-text-muted)}code{font-size:.9em;overflow-wrap:anywhere}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--ktp-primary-dark);margin-bottom:12px}.page-container{max-width:1400px;margin:auto;padding:40px 32px 48px;min-height:calc(100vh - 160px)}.page-container.guest{padding-top:56px}.page-container:focus{outline:none}.page-heading,.section-heading,.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading p,.section-heading p{margin-bottom:0}.card{background:var(--ktp-surface);border:1px solid var(--ktp-border);border-radius:var(--ktp-radius);padding:28px;box-shadow:var(--ktp-shadow)}.site-header,body>header{background:var(--ktp-header);color:var(--ktp-on-primary)}.header-inner{max-width:1400px;margin:auto;min-height:76px;padding:12px 32px;display:flex;gap:36px;align-items:center}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;color:var(--ktp-on-primary)}.brand:hover{color:var(--ktp-on-primary)}.mark{display:grid;place-items:center;background:var(--ktp-surface);color:var(--ktp-primary-dark);width:42px;height:42px;border-radius:9px;font-size:15px;font-weight:900;letter-spacing:-1px}.brand strong,.brand small{display:block}.brand strong{font-size:17px;line-height:1.3}.brand small{font-size:11px;color:var(--ktp-on-primary);margin-top:2px}.primary-nav{display:flex;gap:8px;align-items:center;flex:1;min-width:0}.primary-nav>a,.nav-menu>summary,.header-login{color:var(--ktp-on-primary);padding:9px 12px;border-radius:var(--ktp-control-radius);font-weight:600;text-decoration:none}.primary-nav>a:hover,.primary-nav>a[aria-current],.nav-menu[open]>summary,.nav-menu>summary:hover,.header-login:hover{background:var(--ktp-primary-hover);color:var(--ktp-on-primary)}.nav-menu{position:relative}.nav-menu>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.nav-menu>summary::-webkit-details-marker{display:none}.user-menu{margin-left:auto;min-width:0}.user-menu>summary{padding:5px 8px}.avatar{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;background:var(--ktp-surface);color:var(--ktp-primary-dark);border-radius:50%;font-weight:700}.user-name{max-width:190px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menu-panel{position:absolute;z-index:20;top:calc(100% + 8px);left:0;min-width:250px;max-width:calc(100vw - 32px);padding:8px;background:var(--ktp-surface);border:1px solid var(--ktp-border);box-shadow:var(--ktp-menu-shadow);border-radius:var(--ktp-radius);color:var(--ktp-text)}.user-menu .menu-panel{left:auto;right:0}.menu-panel a,.menu-panel button{display:block;width:100%;text-align:left;background:transparent;border:0;padding:11px 12px;color:var(--ktp-text);font-weight:500;border-radius:6px;text-decoration:none;font-size:14px}.menu-panel a:hover,.menu-panel button:hover{background:var(--ktp-primary-light);color:var(--ktp-primary-dark)}.menu-panel .menu-logout{color:var(--ktp-danger)}.menu-panel form{border-top:1px solid var(--ktp-border);margin-top:5px;padding-top:5px}.menu-label{font-size:var(--ktp-small-size);padding:8px 12px;margin:0;overflow-wrap:anywhere}.header-login{margin-left:auto}.forced-nav{font-size:14px}.site-footer{max-width:1400px;margin:auto;display:flex;justify-content:space-between;gap:16px;padding:24px 32px;color:var(--ktp-text-muted);font-size:var(--ktp-small-size);border-top:1px solid var(--ktp-border)}.button,button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:42px;padding:10px 17px;border:1px solid transparent;border-radius:var(--ktp-control-radius);font-size:14px;line-height:1.4;font-weight:600;background:var(--ktp-primary);color:var(--ktp-on-primary);text-decoration:none;cursor:pointer}.button:hover,button:hover{background:var(--ktp-primary-hover);color:var(--ktp-on-primary)}.button.secondary,button.secondary{background:var(--ktp-surface);color:var(--ktp-primary-dark);border-color:var(--ktp-control-border)}.button.secondary:hover,button.secondary:hover{background:var(--ktp-primary-light);border-color:var(--ktp-primary)}.button.danger,button.danger{background:var(--ktp-danger);color:var(--ktp-on-primary)}.button.danger:hover,button.danger:hover{background:var(--ktp-danger-hover)}button:disabled{background:var(--ktp-neutral-bg);color:var(--ktp-text-muted);cursor:not-allowed;border-color:var(--ktp-border)}.button-group{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px}label{font-weight:600;font-size:14px}input:not([type=hidden]):not([type=checkbox]),select,textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;color:var(--ktp-text);background:var(--ktp-surface);border:1px solid var(--ktp-control-border);border-radius:var(--ktp-control-radius);font-size:15px}input::placeholder{color:var(--ktp-text-muted)}input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--ktp-primary);margin:4px 0 0}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ktp-focus);outline-offset:3px}.site-header a:focus-visible,.site-header summary:focus-visible{outline-color:var(--ktp-on-primary)}.notice{padding:14px 16px;border-radius:var(--ktp-control-radius);border:1px solid currentColor;font-size:14px;overflow-wrap:anywhere}.success{background:var(--ktp-success-bg);color:var(--ktp-success)}.error{background:var(--ktp-danger-bg);color:var(--ktp-danger)}.badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.5}.badge-available{background:var(--ktp-success-bg);color:var(--ktp-success)}.badge-coming_soon,.badge-neutral,.badge-disabled{background:var(--ktp-neutral-bg);color:var(--ktp-text-muted)}.badge-maintenance{background:var(--ktp-warning-bg);color:var(--ktp-warning)}.badge-primary{background:var(--ktp-primary-light);color:var(--ktp-primary-dark)}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--ktp-surface);padding:12px;border-radius:6px}.skip-link:focus{top:8px}.empty-state{padding:24px;background:var(--ktp-surface);border:1px dashed var(--ktp-border);border-radius:var(--ktp-radius)}
@media(max-width:1000px){.header-inner{gap:16px}.user-name{max-width:130px}.primary-nav>a,.nav-menu>summary{font-size:14px;padding:8px}.page-container{padding:32px 24px}.header-inner,.site-footer{padding-left:24px;padding-right:24px}}@media(max-width:680px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 8px;padding:12px 16px}.brand{gap:9px}.brand strong{font-size:15px}.brand small{font-size:10px}.mark{width:36px;height:36px;font-size:13px}.primary-nav{grid-row:2;grid-column:1/-1;gap:12px}.primary-nav>a{padding-left:0}.user-menu{grid-row:1;grid-column:2}.user-name{max-width:100px;font-size:13px}.avatar{display:none}.header-login{font-size:12px;padding:8px}.page-container,.page-container.guest{padding:28px 16px 36px}.card{padding:20px}.site-footer{padding:20px 16px;flex-wrap:wrap;font-size:12px}.page-heading,.section-heading,.admin-heading{gap:16px}.menu-panel{min-width:230px}.button-group{gap:10px}}

@media(max-width:680px){input:not([type=hidden]):not([type=checkbox]),select,textarea{font-size:16px}}

/* P7.5.2 — Portal-wide responsive layout system.
   One authenticated shell for Dashboard, Calendar, Administration and directories. */
.page-container.authenticated,
body:has(.page-container.authenticated) .header-inner,
body:has(.page-container.authenticated) .site-footer{
  width:94%;
  max-width:1760px;
}
.page-container.authenticated{
  padding-left:0;
  padding-right:0;
}
body:has(.page-container.authenticated) .header-inner{
  padding-left:0;
  padding-right:0;
}
body:has(.page-container.authenticated) .site-footer{
  padding-left:0;
  padding-right:0;
}
@media(max-width:1180px){
  .page-container.authenticated{
    width:auto;
    max-width:none;
    margin-left:24px;
    margin-right:24px;
  }
  body:has(.page-container.authenticated) .header-inner,
  body:has(.page-container.authenticated) .site-footer{
    width:auto;
    max-width:none;
    margin-left:24px;
    margin-right:24px;
    padding-left:0;
    padding-right:0;
  }
}
@media(max-width:680px){
  .page-container.authenticated,
  body:has(.page-container.authenticated) .header-inner,
  body:has(.page-container.authenticated) .site-footer{
    margin-left:16px;
    margin-right:16px;
  }
  .page-container.authenticated{padding-top:28px;padding-bottom:36px}
}
