@import url(‘fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap’);

:root {

--default-font: "Noto Sans", Verdana, Geneva, Arial, Helvetica, sans-serif;
--heading-font: Georgia, Palatino, "Times New Roman", Times, serif;
--fixed-font: Consolas, Monaco, "Lucida Console", monospace;
--link-color: #00C;  /* less aggressive than pure blue */
--link-hover-background: #ffa;  /* pale yellow */
--link-to-non-documented-color: #555;  /* grey */
--index-background: #f5f5f5;  /* pale grey */
--pre-background: #f8f8f8;  /* very pale grey */
--code-background: #f4f4f4;  /* pale grey */
--table-header-background: #eee;
--current-index-link-color: firebrick;
--current-index-link-background: #fcfcfc;

}

/*

* ===============
*  General reset
* ===============
*/

body {

font-family: var(--default-font);
background-color: white;
color: black;
font-size: 10pt;

}

pre, p, h1, h2, h3, h4, h5, h6, ul, ol, dl {

margin-top: 1ex;

}

td, th {

vertical-align: baseline;
padding-right: 1ex;

}

blockquote {

border-left: 2px solid silver;
padding-left: 12px;

}

ul { margin-left: 1.5em; } li { margin-top: 0.5ex; }

ol { margin-left: 2em; } ol li { margin-top: 1em; }

/* label lists: classic DT/DD */

.label-list > dt {

margin-top: 1ex;
font-weight: bold;

} .label-list > dt > code { font-size: 100%; } .label-list > dd { margin-left: 2em; }

/* note lists: DT and DD on same row, no space between rows */

dl.note-list {

display: grid;
grid-template-columns: max-content auto;
margin-left: 1ex;

} dl.note-list > dt { grid-column-start: 1; } dl.note-list > dd { grid-column-start: 2; margin-left: 2ex; } dl.note-list > dd > p { margin-top: 0; } dl.note-list > dd > pre {

margin-top: 2px;
padding-top: 0.5ex;
padding-bottom: 0.5ex;

}

table {

border-collapse: collapse;
margin-top: 1ex;

}

th {

text-align: left;
font-weight: bold;

}

td p {

margin-top: 0.5ex;

}

table th, table td {

padding: 0px 2px;
border: 1px solid #ddd;

}

table th {

font-weight: normal;
background-color: var(--table-header-background);

}

hr {

margin-top: 1ex;
border: 0;
height: 2px;
color: silver;
background-color: silver;

}

a {

color: var(--link-color);
text-decoration: none;

}

a:hover {

background-color: var(--link-hover-background);
padding-bottom: 2px;

}

.nodoc a {

color: var(--link-to-non-documented-color);

}

/* banner colors */

header, .index .title {

color: white;
background-color: #275382;
background: linear-gradient(to right,  #164270,  #77a1d1);

}

/*

* ===============
*  General Layout
* ===============
*/

body {

display: grid;
grid-template-columns: auto 1fr;

}

left-container {

position: sticky;
top: 0;
width: 20vw;
height: 100vh;
overflow: hidden;
border-right: 2px solid silver;

}

left-frame {

width: 100%;
height: 100vh;
border: none;

}

resizer {

position: absolute;
right: -5px;
top: 0;
width: 10px;
height: 100%;
cursor: ew-resize;
z-index: 9999;

}

/*

* =============
*  Index files
* =============
*/

.index p, .index ul {

margin: 0;
padding: 0;

}

body.index {

background-color: var(--index-background);
display: unset;
height: unset;
overflow: auto;

}

.index .title {

font-family: var(--heading-font);
padding: 3px 2px 5px 5px; /* TRBL */

} .index .title .text {

display: inline-block;
padding-top: 2px; /* TRBL */

} .search-field {

font-family: var(--fixed-font);
position: absolute;
right: 3px;
padding: 0 1px 2px 2px; /* TRBL */
border: 1px solid silver;
color: gray;
width: 8em; /* search... */

} .search-field:focus {

color: black;

}

.index .entries {

padding: 0.2em 0;
font-size: 80%;
overflow-x: hidden;
overflow-y: auto;

} .index p {

white-space: nowrap;

} .index .type {

color:#444;
font-size:75%;
padding-left:0.67ex;
display:inline-block;
width:0.85em;

} .index a, .index a:hover {

padding: 0 0.5ex;

}

/* current file, class, method */ .current-main {

color: var(--current-index-link-color);
background-color: var(--current-index-link-background);

}

/* the resizers, and a 9-pixel wide area around them */ file-class-resizer, class-method-resizer {

position: fixed;
left: 0;
width: 100%;
top: 90px;
height: 0px;
/*
background-color: red;
*/

} file-class-resizer::after, class-method-resizer::after {

content: "";
position: absolute;
left: 0;
right: 0;
height: 9px;
margin-top: -4px;
background-color: transparent;
cursor: ns-resize;

}

/*

* =============
*  Main files
* =============
*
* The structure is:
*  #header
*  nav  (inserted by script)
*  #documentation
*
*/

h1, h2, h3, h4, h5, h6 {

font-family: var(--heading-font);
color: #c61a1a; /* ruby red ;) */
padding-bottom: 0.5ex;
font-weight: normal;

}

h1, h2, h3 {

margin-top: 1em;
margin-bottom: 1ex;
border-bottom: 1px solid #ddd;

}

h4, h5, h6 {

margin-top: 0.75em;
border: none;

}

/* links inside headings: keep blue h1 a, h2 a, h3 a {

color: #e62020;

} */

h1 { font-size: 230%; } h2 { font-size: 180%; } h3 { font-size: 150%; } h4 { font-size: 120%; } h5 { font-size: 105%; } h6 { font-size: 100%; }

documentation > h1:first-child, documentation > h2:first-child, documentation > h3:first-child {

margin-top: 0;

}

code {

font-family: var(--fixed-font);
font-size: 100%;
background-color: var(--code-background);
padding: 1px 5px;
border-radius: 4px;

}

a:hover code {

background-color: var(--link-hover-background);

}

pre {

font-family: var(--fixed-font);
padding: 1ex;
background-color: var(--pre-background);
border-radius: 8px;
white-space: break-spaces; /* for too wide text: see Net::HTTP#patch */

}

documentation {

padding: 1em; /* TRBL */
overflow: auto;

}

/* — toc button and menu */

nav {

position: fixed;
padding-top: 10px;
right: 10px;
z-index: 2;

}

nav p {

margin: 0;
padding: 0;

}

nav p.h2 { text-indent: 10px; } nav p.h3 { text-indent: 20px; } nav p.h4 { text-indent: 30px; } nav p.h5 { text-indent: 40px; } nav p.h6 { text-indent: 50px; }

menu-button {

float: right;
margin-top: 4px;
margin-right: 4px;

cursor: pointer;
background-color: #ededed;
opacity: 0.5;
box-shadow: none;
border: 1px solid silver;
border-radius: 3px;
padding: 3px;
padding-bottom: 0;  /* centers the 18px icon vertically */

}

menu-button:hover {

opacity: 1;

}

menu-content {

font-size: 9pt;
border: 1px solid silver;
background-color: white;
z-index: 1;

}

menu-top {

margin: 0;
padding: 6pt;
border-bottom: 1px solid silver;

}

toc-content {

margin: 0;
padding: 6pt;
max-height: 80vh;
overflow: auto;

}

.hidden {

display: none;

}

.icon-hamburger {

content: url("images/menu_black_18dp.svg");
display: inline-block !important; }

.icon-cross {

content: url("images/close_black_18dp.svg");
display: none !important;

}

.show-close .icon-hamburger { display: none !important; } .show-close .icon-cross { display: inline-block !important; }

/* — top header of main files

div#header
  p.header-title
    span.prefix
    span.name
  p.header-title
    span.parent
  p#file-info
    span.in-files
      'In:'
    span.file-list
      a (link to 1st files)
      a#show-all-files  # if more than 2 files
      span#all-files
        a (link to each file)

*/

header {

padding: 1ex;
display: flex;
flex-wrap: wrap;
align-items: end;

}

header p {

margin: 0;
padding: 0;
white-space: nowrap;

}

header a {

color: #ee0;
padding: 0 2px 1px 2px; /* TRBL */

} header a:hover {

color: yellow;
background-color: inherit;
border-bottom: 1px solid yellow;

}

.header-title {

font-family: var(--heading-font);
/* vertical-align: middle; */

}

header .prefix { font-size: 130%; } header .name { font-size: 170%; } header .parent { font-size: 130%; }

p#file-info {

font-family: var(--fixed-font);
font-size: 90%;
vertical-align: top;
margin-left: auto;

} .in-files {

vertical-align: top;

} .file-list {

display: inline-block;

} all-files {

border: 1px solid silver;
margin-top: 0.5ex;
background-color: var(--index-background);
padding: 1px 0;
max-height: 30em;
overflow-x: hidden;
overflow-y: auto;
display: none;
position: absolute;

} all-files a {

color: var(--link-color);
padding-top: 0;
padding-bottom: 0;

} all-files a:hover {

color: var(--link-color);
background-color: var(--link-hover-background);

}

/* — class page

#header (see above)
#documentation
  (description stuff if any)
  #class-aliases (.list ul)
  #method-list (ul)
  #namespace-list (.list ul)
  #include-list (.list ul)
  #constant-list (.list table)
    tr.const-display
      td.const-name
      td.const-desc
      td.click-advice
    tr.const-value
    ...
  #external-aliases (.list table)
  #class-attributes (.list table)
    td.attr-rw
    td.attr-name
    td.attr-desc
    ...
  #instance-attributes (.list table)
    ...
  #<visibility>-<type>-methods
    #method:<method_name> (.method-detail [.method-alias])
      .method-heading
        .method-call-seq | .method-name + .method-args
        .click-advice
      .method-description
        .method-source-code

*/

.click-advice {

font-size: 10px;
color: #9b9877;
background: url(images/zoom.png) no-repeat right top;
padding-right: 20px;
line-height: 16px;
visibility: hidden;
white-space: nowrap;

}

/* lists */

.list h3 {

margin-bottom: 0.5ex;

}

/* ul lists */

.list > ul {

list-style-type: none;
margin: 0 1ex;
padding: 0;

} .list li {

margin: 0;
padding: 0;

}

/* list of methods */

method-list ul {

line-height: 1;

} method-list li {

display: inline-block;
font-family: var(--fixed-font);
font-size: 100%;
padding: 2px 0;

} method-list .type {

padding-right: 1px;
font-size: 80%;

} method-list li a {

padding: 0 4px 2px 4px; /* TRBL */

} /* when there are sections: */ method-list li.section-title {

font-family: var(--default-font);
font-size: 9.5pt;
margin-right: 1ex;

}

/* mixed class/module lists */

table.classes-modules {

margin: 0;
margin-left: 1ex;

}

/* table lists */

.list table {

margin-top: 0;

}

.list p {

margin-top: 0.5ex;

}

.list table ul, .list table ol {

margin-top: 0;

}

.attr-rw p {

font-size: 70%;
padding: 0.75ex 0 0 1ex;

} .const-name p, .attr-name p {

font-family: var(--fixed-font);
font-size: 100%;
font-weight: bold;
padding: 0.3ex 0.5ex 0 0.2ex;  /* top padding to align baselines */

} .const-desc p, .attr-desc p { } .const-display {

cursor: pointer;

} .const-display:hover .click-advice {

visibility: visible;

} .const-value {

font-family: var(--fixed-font);
display: none;

}

/* — method details

.method-detail [.method-alias]
  .method-heading
    .method-call-seq | .method-name + .method-args
    .click-advice
  .method-description
    .method-source-code

*/

.method-detail {

border: 1px solid #ddd;
border-radius: 3px;
margin-top: 1em;
padding-bottom: 1ex;
/* cursor: pointer; */

}

.highlighted {

border: 1px solid red !important;

}

.method-detail h3 {

border: none;
font-weight: normal;
padding-bottom: 0;

}

.method-heading {

position: relative;
font-family: var(--fixed-font);
font-size: 105%;
padding: 0.5ex 1ex;
border-bottom: 1px solid #ddd;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
background-color: #eee;
cursor: pointer;

} .method-heading :link, .method-heading :visited {

color: inherit;

} .method-call-seq {} .method-name {

font-weight: bold;

} .method-args {}

.method-heading .click-advice {

position: absolute;
top: 4px;
right: 5px;

} .method-heading:hover .click-advice {

visibility: visible;

}

.method-description {

padding: 0 1ex;

} .method-description p + p {

margin-bottom: 0.5ex;

} .method-description .nodoc {

color: #888;

}

/* source code */

pre.method-source-code {

border: 1px solid  #fff5dd; /* very page orange */
background-color: #fffffa;  /* very pale yellow */
margin-top: 1ex;
padding-top: 0;
padding-left: 0.5ex;
padding-bottom: 0.5ex;

display: none;

}

.ruby-constant { color: #7700cc; } /* violet */ .ruby-keyword { color: #3333ff; font-weight: bold; } /* a blue */ .ruby-ivar { color: #2233dd; } /* a lighter blue */ .ruby-operator { color: black; } .ruby-identifier { color: black; } .ruby-node { color: #860000; } /* dark red / light brown (resolved strings) */ .ruby-comment { color: green; } .ruby-regexp { color: ca1a1a; } /* orangish brown */ .ruby-string { color: #860000; } /* dark red / light brown (unresolved strings) */ .ruby-value { color: #860000; } /* dark red / light brown */ .line-num { color: grey; }

/* — file page (simple parser)

#header (see above)
#documentation
  (description)

 --- other files
#header (see above)
#documentation
  (description if any)
  #file-details
    (requires in ul)
    (classes & modules)
    (webcvs)

*/

file-details h3 {

border: none;
font-weight: normal;
padding-bottom: 0;

}

/* requires */ file-details li {

font-family: var(--fixed-font);

}

/* maybe JS stuff */

.initially-hidden {

display: none;

}

.missing-docs {

-webkit-border-radius: 5px;
-moz-border-radius: 5px;

}

/* debugging section */

debugging-toggle {

text-align: center;

} debugging-toggle img {

cursor: pointer;

}

rdoc-debugging-section-dump {

display: none;
margin: 0 2em 2em;
background: #ccc;
border: 1px solid #999;

}